模型规则模式
我想让我的模式允许:a-z(可以有重音符号),A-Z(可以有重音符号),短划线,空格和点。 这种模式应该写成哪种方式?模型规则模式
实际模式:
array('name','match', 'not' => true, 'pattern' => '/[^a-zA-Z0-9-\s]/')
的^
内[]
含义不所以你需要的是几乎相同:-)
/[a-zA-ZÁ-ý0-9-\s]/u
进一步阐述什么你可能需要的是/^[a-zA-ZÁ-ý0-9-\s]+$/
,它允许整个字符串只是里面有什么的[]
和你想要的(在+
是尽可能多的字符有)
试试下面的正则表达式,我认为这是你在找什么:
$str = 'hjkáÁdfgçÇhj.-hj'; // Matches your criteria
if(preg_match('/^[a-zA-ZÁ-ý\-\. ]+$/', $str))
echo 'match';
else
echo 'no match';
不工作array('name','match','not'=> true,'pattern'=>'/^[a-zA-ZÁ-ý\ - \。] + $ /'),' – 2013-03-04 18:51:05
你可能会展示更多的代码。例如,你如何实际匹配你的结果?因为我提供的代码工作:http://codepad.viper-7.com/2Fr3G7 – w00 2013-03-05 09:43:01
能你试试这个
array('name','match', 'not' => true, 'pattern' => ''^([a-zA-ZÁ-ý\-\. ]+)^'')
这不符合带口音的字符 – w00 2013-03-02 17:32:38
@ w00,你是对的!我为unicode添加了'/ u'修饰符。 – gmaliar 2013-03-02 17:36:30
不得不指出,这也接受中国,韩国,希腊(等)字母。它也接受像'()*&^ ... etc'这样的字符。 – w00 2013-03-02 17:40:55