我一直在使用JavaScript中的全名的正则表达式代码,模式如下:/(\w)\s(\w)/
。问题是这个模式接受的数字我不会在用户的全名中。因此,我需要一个模式,在第一个名称后面接受一个空格,并在空格后接受第二个名称,并且限制为30个字符,但不接受数字。我不知道如何创建一个正则表达式模式,所以任何帮助都是值得赞赏的。
这就是代码现在的样子:
if(name.match(/(\w)\s(\w)/)){
flagOne = true;
}
答案 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中所述。