0

我正在使用一个简单的 Javascript 正则表达式来验证人们的姓名。但是,我不想让用户输入重音字符,如ã, ä, õ,ö等。我知道这些实际上可以是名称中的有效字符,但对于我的练习,我需要能够将它们过滤掉。

我目前的正则表达式:

^[a-zA-Z]+('|-|.|)[a-zA-Z\s]+$

这也匹配重音字符。如何修改此正则表达式,使其不匹配带有重音符号(或任何 Unicode 字符)的名称?

4

2 回答 2

2

删除.,因为.匹配任何字符。这可能会导致匹配的重音字符。

^[a-zA-Z]+('|-)[a-zA-Z\s]+$

.或者如果您的意思是字面点,请转义。

^[a-zA-Z]+('|-|\.)[a-zA-Z\s]+$
于 2013-08-08T09:07:00.573 回答
1

要匹配单个字符,最好使用一个类[...],而不是一个有替代品的组(...|...)

^[a-zA-Z]+['.-][a-zA-Z\s]+$

请注意,这不是 100% 准确的,因为它可以验证诸如此类的内容foo.bar

于 2013-08-08T09:17:40.780 回答