仅匹配数字/波斯字符和拉丁文

时间:2014-04-05 12:35:44

标签: php regex

我需要一个匹配Numbers / Persian Characters和Latin(A-Z)

的正则表达式代码

我写了以下代码

preg_match("/[A-Za-z\s\x{0600}-\x{06FF}0-9_\.\- ]/u",$_POST['input'] )

并且工作正常。

但是有一个问题,我不想输入任何(@,#,!,%,$,&,*)字符。

任何想法?

1 个答案:

答案 0 :(得分:3)

在你的正则表达式中使用negative lookahead断言来检查是否没有这样的字符。将它放在正则表达式的开头。我的意思是在/之后。

(?!.*[(@#!%$&*)])

例如:

preg_match("/^(?!.*[(@#!%$&*)])[A-Za-z\s\x{0600}-\x{06FF}0-9_\.\- ]+$/u",$_POST['input'] )