2011-04-26 70 views
1

我想验证一些用户输入,但我的正则表达式在遇到变音符时失败。我正在谈论像ăĂ等字符。正则表达式的变音问题

我应该添加到正则表达式代码,所以它应该也验证从输入内的变音符号?

谢谢!

P.S .:如果有关系,我使用PHP和CakePHP框架。

这是我目前使用的用于验证用户输入一段代码:return preg_match('|^[0-9a-zA-Z_-\s]*$|', $value);

+1

如果您不告诉我们您的正则表达式是什么,我们该如何帮助您? – Gabe 2011-04-26 16:44:13

+0

对不起,忘记了吧! – linkyndy 2011-04-26 16:47:50

回答

6

假设你想匹配的字母,然后让Unicode字母应该有所帮助:

使用/\p{L}+/u例如,如果你想匹配一系列字母。不要忘记/u(Unicode)修饰符。

你的情况:

return preg_match('|^[0-9\p{L}_\s-]*$|u', $value); 

应该工作。

另外,使用|作为正则表达式定界符可能不是一个好主意。对于目前的正则表达式/会做得很好;其他选择是~#,因为它们很少出现在文本中,并且在正则表达式中没有任何特殊含义。

+0

非常感谢您的详细解释! – linkyndy 2011-04-26 17:37:11