PHP正则表达式允许这种模式中的破折号

时间:2013-04-08 17:54:43

标签: php regex

我有一个图像文件名验证的正则表达式:

/^\w*\.(jpg|jpeg|png|gif)$/

但问题是文件名可以包含短划线-字符。例如:564SDD-DSS.png

如何在此声明中加入破折号?我需要逃脱吗?

/^\w\-*\.(jpg|jpeg|png|gif)$/

/^[\w\-]*\.(jpg|jpeg|png|gif)$/

我有点失落。

1 个答案:

答案 0 :(得分:5)

只需[\w-]即可。而不是*你可能想要+,因为我确定基本名称至少有一个字符长。一起来:

/^[\w-]+\.(jpe?g|png|gif)$/i

请注意,这确实允许只有-.jpg

的文件名