我想验证名称字符串。它可以包含正常的uppper / lowercase字符,如A-Z,a-z,以及空格。但是名称也可以包含重音字符,如é
和Ä
,Ö
,Ü
等。所以我如何允许重音字符而不允许使用{{1}这样的非名字字符}和/
。
我试过了:
&
但这与空格和重音字符不匹配。
答案 0 :(得分:2)
您可以通过unicode范围进行匹配(对于unicode值,请查看this table)。尝试这样的事情:
[a-zA-Z\u00C0-\u017F\s]+
<强>解释强>
a-zA-Z
匹配小写和小写字符范围。\u00C0-\u017F
匹配一大块重音字符。\s
匹配空格。
let nameToCheck = "Lómöwen Thrél"
let checkValue = /^[a-zA-Z\u00C0-\u017F\s]+$/.test(nameToCheck);
document.write(checkValue ? "valid name" : "invalid name");
答案 1 :(得分:0)
我来自越南,我遇到了同样的问题。但是â, ê, ô, ơ...
代替Ä, Ö, Ü
。在这种情况下,没有办法正确使用正则表达式(但是.+
)。
这是我做过的最简单的方法:
/^[\w\sÄÖÜ]+$/.test(value);
注意:\w
对a-z
,A-Z
和0-9
返回true,但空格\s