JavaScript regexp用特殊字符(如撇号和空格)验证Name

Bha*_*h B 1 javascript regex validation

我需要验证像这样的名字

Dr. D'souza (valid)
Mr. John (valid)
Doe (valid)
Run Code Online (Sandbox Code Playgroud)

即允许完全停止,空间和撇号

输入无效的特殊字符时告知用户,比如$ * + ?|\><:;[]{} etc 我是regexp的新手.尝试改变一些,但无法匹敌

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');
}
Run Code Online (Sandbox Code Playgroud)

sp0*_*00m 9

您可以使用以下正则表达式:

[a-zA-Z]+(?:(?:\. |[' ])[a-zA-Z]+)*
Run Code Online (Sandbox Code Playgroud)

正则表达式可视化

(?:\. |[' ])意思是"要么是一个点后跟一个空格,要么是一个撇号,或一个空格".例如,如果你需要允许大肆宣传,那么替换[' ][' -](一个必须要在一个类的开头或末尾进行匹配).更多信息,请访问http://www.regular-expressions.info/.

Debuggex演示