使用此正则表达式无法验证以下语言的文本:
/^[\p{L}\p{Nd}-_.]{1,20}$/u
不起作用的语言:
Bengali, Gujarati, Hindi, Marathi, Thai, Tamil, Telugu, Vietnamese
与PHP的preg_match
一起使用。
我错过了什么?
答案 0 :(得分:4)
您错误地使用了短划线。如果您希望它与文字短划线字符匹配,则需要将其转义(\-
)或将其放在字符类的末尾。
另外,我对这些语言并不熟悉,但我想你可能也需要考虑这些标记:
/^[\p{L}\p{Nd}\p{M}_.-]{1,20}$/u
答案 1 :(得分:0)
问题不是来自你的正则表达式(除了字符-
必须始终在字符类的开头或结尾处)。请注意,您的模式可以缩短为:
/^[\w.-]{1,20}$/u
或
/^[\p{Xan}.-]{1,20}$/u
如果你想删除下划线