破折号我有一个图像文件名验证正则表达式:PHP正则表达式允许这种模式
/^\w*\.(jpg|jpeg|png|gif)$/
但问题是,文件名可以包含破折号-
字符。例如:564SDD-DSS.png
我如何在此声明中加入破折号?我需要逃避它吗?
/^\w\-*\.(jpg|jpeg|png|gif)$/
或
/^[\w\-]*\.(jpg|jpeg|png|gif)$/
?
我有点失落。
破折号我有一个图像文件名验证正则表达式:PHP正则表达式允许这种模式
/^\w*\.(jpg|jpeg|png|gif)$/
但问题是,文件名可以包含破折号-
字符。例如:564SDD-DSS.png
我如何在此声明中加入破折号?我需要逃避它吗?
/^\w\-*\.(jpg|jpeg|png|gif)$/
或
/^[\w\-]*\.(jpg|jpeg|png|gif)$/
?
我有点失落。
只要[\w-]
会做。而不是*
你可能想要+
,因为我确定基本名至少有一个字符长。总之:
/^[\w-]+\.(jpe?g|png|gif)$/i
注意,这确实允许一个文件名,这只是-.jpg
您可能想要添加'i'修饰符。这里你还可以在文件扩展名中包含大写字母 – 2013-04-08 17:57:30
@Le_Morri好点 – 2013-04-08 18:00:25
谢谢!你能告诉我'''在这里做了什么:'jpe?g',它检查一个字符'?' – rinchik 2013-04-08 18:01:17
* offtopic *尊重我authoritah! – Quasdunk 2013-04-08 17:56:22
如果你真的尝试*运行*这些表达式,你会发现最后一个完全符合你的要求,并保存自己到SO的旅程。 – Sammitch 2013-04-08 17:57:55