[英]php regex filename
anyone can help me with a preg_match? 有人可以帮我一个preg_match吗? I'd like to use php's preg_match to determine if an input is a valid filename or not (only the filename + file extension, not the full path).
我想使用php的preg_match来确定输入是否是有效的文件名(只有文件名+文件扩展名,而不是完整路径)。 General rules:
通用规则:
1) filename = a-z, A-Z, 0-9
2) extension = 3 or 4 letters
Thank you! 谢谢!
尝试这个:
preg_match('/^[a-zA-Z0-9]+\.[a-zA-Z]{3,4}$/', $filename)
You can do: 你可以做:
if(preg_match('#^[a-z0-9]+\.[a-z]{3,4}$#i',$filename)) {
echo "Valid";
}else{
echo "not Valid";
}
/^[a-zA-Z0-9]+\.[a-zA-Z]{3,4}$/
If you want to enforce min/max length for the file name part: 如果要强制执行文件名部分的最小/最大长度:
//minimum 4 characters and a maximum of 8 characters
/^[a-zA-Z0-9]{4,8}\.[a-zA-Z]{3,4}$/
^\w+\.\w{3,4}$
应该管用。
Try this: 尝试这个:
$filename1 = "file_16may25_001818.csv";
$filename2 = "file_16may25_001818";
$filename3 = "file.csv";
$filename4 = "file.txt";
echo "<br />filename1=>".preg_match('/^file(.*).csv/', $filename1);
echo "<br />filename2=>".preg_match('/^file(.*).csv/', $filename2);
echo "<br />filename3=>".preg_match('/^file(.*).csv/', $filename3);
echo "<br />filename4=>".preg_match('/^file(.*).csv/', $filename4);
?>
Output: 输出:
filename1=>1
filename2=>0
filename3=>1
filename4=>0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.