Javascript全名正则表达式问题

时间:2017-01-03 21:32:22

标签: javascript jquery regex

我一直在使用JavaScript中的全名的正则表达式代码,模式如下:/(\w)\s(\w)/。问题是这个模式接受的数字我不会在用户的全名中。因此,我需要一个模式,在第一个名称后面接受一个空格,并在空格后接受第二个名称,并且限制为30个字符,但不接受数字。我不知道如何创建一个正则表达式模式,所以任何帮助都是值得赞赏的。

这就是代码现在的样子:

    if(name.match(/(\w)\s(\w)/)){
        flagOne = true;
    }

1 个答案:

答案 0 :(得分:1)

您可以使用以下模式仅匹配字母字符(请注意,您现在不允许使用çöäüèéà等特殊字符或'-等标点字符:< / p>

/^([A-Za-z]+?)\s([A-Za-z]+?)$/

完整字符串的长度无法以此形式测量,但可以使用JavaScript轻松读取:

name.length;

以下是JavaScript中的示例:

var name = "Test Name";
if(name.match(/^([A-Za-z]+?)\s([A-Za-z]+?)$/) && name.length <= 30) {
    console.log("name is valid.");
}

与评论中的@gaetanoM pointet一样,您也可以使用更复杂的正则表达式,如此answer中所述。