我有一个很好的RegExp,它根本不允许数字:
/^[\D]*$/
现在我只需要它也不能防止这样的特殊字符:
!@#$%^&*()_+-/."'
<> \ |±§`
等(如果还有更多我不知道的特殊字符,我也很乐意将其阻止)。
这确实有效-但可能无法涵盖所有情况:
/^[^\d^!^@^#^$^%^&^*^(^)^[^\]^{^}^;^:^|^,^<^>^.^?^/^\\^~^`^±^§]*$/
答案 0 :(得分:2)
您需要使用支持正则表达式且具有完整Unicode(即ES 6+)的Javascript版本。然后您可以使用这样的正则表达式:
/^\p{L}*$/gu
这仅允许L
Unicode字符类中的字符,代表“字母”。
var regex = /^\p{L}*$/gu;
console.log("abc".match(regex));
console.log("αβγ".match(regex));
console.log("абв".match(regex));
console.log("ひらがな".match(regex));
console.log("中文".match(regex));
console.log("!@#$".match(regex));
console.log("1234abc".match(regex));