Javascript正则表达式:测试人的名字

时间:2010-06-19 00:33:15

标签: javascript regex

从这些问题:javascript regex : only english letters allowed

如何对人名进行表达测试?目前它根本不允许名称之间的空格。我需要能够匹配像 John Doe

这样的东西

干杯

8 个答案:

答案 0 :(得分:14)

let result = /^[a-zA-Z ]+$/.test( 'John Doe');
console.log(result);

在字符类中抛出所需的任何符号。这是为什么我说具体关于完全您要验证的内容。这个正则表达式不会考虑重音字符,如果你关心你最好用unicode匹配。

答案 1 :(得分:5)

FWIW,我写这个正则表达式来清理名字:

let name = "John Doe";
let result = name.replace(/[^A-Za-z0-9_'-]/gi, '');
console.log(result);

这将让像奥布莱恩,史密斯,史密斯 - 奥布莱恩这样的名字通过,但会阻止像恩格尔这样的“名字”;放弃用户;从被传递。无论如何,这是事实发生后的四年,但希望我的答案有用。

答案 2 :(得分:5)

^\s*([A-Za-z]{1,}([\.,] |[-']| ))+[A-Za-z]+\.?\s*$

与@ Stephen_Wylie的解决方案类似,但更短(更好?)。

答案 3 :(得分:4)

试试这个:

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

它可以选择[至少1个字母字符后跟一个'或 - ]无限次数。在必需的空格之前必须至少有一个字母字符,以确保我们至少获得名字和姓氏。整个模式被分组以接受无限重复(对于喜欢使用他们所有名字的人,例如John Jacob Jingleheimer Schmidt),但必须至少出现一次,通过中间的+符号。最后,姓氏的处理方式与其他名称相同,但不允许使用尾随空格。 (不幸的是,这意味着我们会稍微违反DRY。)

以下是几个可能的输入结果:

"Jon Doe": true
"Jonathan Taylor Thomas": true
"Julia Louis-Dreyfus": true
"Jean-Paul Sartre": true
"Pat O'Brien": true
"Þór Eldon": false
"Marcus Wells-O'Shaugnessy": true
"Stephen Wells-O'Shaugnessy Marcus": true
"This-Is-A-Crazy-Name Jones": true
"---- --------": false
"'''' ''''''''": false
"'-'- -'-'-'-'": false
"a-'- b'-'-'-'": false
"'-'c -'-'-'-d": false
"e-'f g'-'-'-h": false
"'ij- -klmnop'": false

请注意,它仍然无法处理Unicode字符,但如果需要,可能会扩展为包含这些字符。

答案 4 :(得分:0)

只需添加空格

^[\w ]+$

不确定是否是您的需要。

答案 5 :(得分:0)

以下代码适用于我的情况:

<div class="a box"> </div>
<div class="b box"> </div>
<div class="c box"> </div>

答案 6 :(得分:0)

我认为这是一个简短的方法

c = DriverManager.getConnection("jdbc:sqlite:" + this.dbPath + this.dbName,setConfig().toProperties()) ;

private SQLiteConfig setConfig() {
    SQLiteConfig config = new SQLiteConfig();
    config.enforceForeignKeys(true);
    config.setTempStore(SQLiteConfig.TempStore.MEMORY);
    config.setCacheSize(1000);
    config.setReadOnly(true);
    return config;
}

答案 7 :(得分:0)

试试这个:

在名称中,您可以使用破折号、空格和单引号。

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

还有特殊符号

/^[ a-zA-ZàèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇßØøÅåÆæœ'`'\-]+$/