0

我遇到了 javascript 正则表达式的问题。

它不会停止数字和“!” 字符,而它应该。它适用于其他特殊字符,当然我已经对其进行了调试,看看它是否真的进行了测试,等等……确实如此。即使我的字符串中有数字,它也会返回 true。

这是正则表达式:

new RegExp("^[^\\- ][A-Za-z\u00C00-\u017F\\- ]+"); // \u00C00-\u017F = À-S(latin)

这是为了验证表单中的名字。

问题很奇怪,因为我在 java 的服务器端有完全相同的正则表达式,而且它工作得很好。

感谢您的回答:)

4

2 回答 2

6

你可能有一些错字:

\u00C00-\u017F

C00 hex 将大于 17F hex。但 \u 仅捕获四个字符,请参阅下面的评论。

于 2012-08-29T12:22:15.113 回答
0

您应该转义(对于 javascript 字符串)正则表达式\u

new RegExp("^[^\\- ][A-Za-z\\u00C0-\\u017F\\- ]+");

此外,如果您尝试匹配重音字母,则范围为(正则表达式)[\u00C0-\u00FF]

于 2012-08-29T12:25:52.110 回答