我需要验证像这样的名字
Dr. D'souza (valid)
Mr. John (valid)
Doe (valid)
即允许句号、空格和撇号
并在输入无效的特殊字符时通知用户,如 $ * + ?|\><:;[]{} etc
我是正则表达式的新手。尝试改变一些但无法匹配
var errmsg = new Array;
var re = /^[a-zA-Z'.,]+({0,1}[a-zA-Z-, ])*$/;
if (!re.test($(this).val())) {
errmsg.push($(this).attr('placeholder') + ' is invalid');
}
最佳答案
您可以使用以下正则表达式:
[a-zA-Z]+(?:(?:\. |[' ])[a-zA-Z]+)*
(?:\. |[' ])
表示“点后跟空格、撇号或空格”。例如,如果您还需要允许使用连字符,请将 [' ]
替换为 [' -]
(连字符必须位于类的开头或结尾要匹配)。更多信息,请访问 http://www.regular-expressions.info/ .
关于使用撇号和空格等特殊字符验证名称的 JavaScript 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24754914/