3

使用此正则表达式无法验证以下语言中的文本​​​:

/^[\p{L}\p{Nd}-_.]{1,20}$/u

不起作用的语言:

Bengali, Gujarati, Hindi, Marathi, Thai, Tamil, Telugu, Vietnamese

当与 PHP 的preg_match.

我错过了什么?

4

2 回答 2

4

您错误地使用了破折号。如果您希望它与文字短划线字符匹配,则需要对其进行转义 ( \-) 或将其放在字符类的末尾。

另外,我不熟悉这些语言,但我想您可能还需要考虑标记:

/^[\p{L}\p{Nd}\p{M}_.-]{1,20}$/u
于 2013-08-03T21:19:02.060 回答
0

问题不是来自您的正则表达式(除了字符-必须始终位于字符类的开头或结尾的事实)。请注意,您的模式可以缩短为:

/^[\w.-]{1,20}$/u

或者

/^[\p{Xan}.-]{1,20}$/u

如果要删除下划线

于 2013-08-03T21:19:13.287 回答