Javascript 正是这种形式的正则表达式:Tyler Durden

Javascript 正是这种形式的正则表达式:Tyler Durden,javascript,regex,Javascript,Regex,嗨,我需要一个javascript正则表达式作为html表单中的名称字段。用户应该能够输入多个用空格分隔的名称。所有名字的第一个字符都应该是大写。没有数字,只有特殊字符。等等 多谢各位 ^[A-Z][a-zA-Z]* [A-Z][a-zA-Z]*$ 如果需要两个以上的名称: ^([A-Z][a-zA-Z]*)( [A-Z][a-zA-Z]*)*$ ^[A-Z][A-Z]*[A-Z][A-Z]** 将匹配以下字符串并将其捕获到组中,如下所示: 泰勒·德登,约翰·多伊,巴拉克·奥巴马 泰勒·德登

嗨,我需要一个javascript正则表达式作为html表单中的名称字段。用户应该能够输入多个用空格分隔的名称。所有名字的第一个字符都应该是大写。没有数字,只有特殊字符。等等

多谢各位

^[A-Z][a-zA-Z]* [A-Z][a-zA-Z]*$
如果需要两个以上的名称:

^([A-Z][a-zA-Z]*)( [A-Z][a-zA-Z]*)*$
^[A-Z][A-Z]*[A-Z][A-Z]**

将匹配以下字符串并将其捕获到组中,如下所示:

泰勒·德登,约翰·多伊,巴拉克·奥巴马

泰勒·德登·约翰·多伊·巴拉克·奥巴马

可以使用多个空格分隔每个名称。如果您将能够给出多个名称理解为一个名称是名字和姓氏的组合

这应该匹配多个名称,如下所示:

比尔·史密斯

比尔·史密斯布莱恩·琼斯·艾伦·金

\b([A-Z][a-z]* [A-Z][a-z]*)\b
\b匹配宽度为0的单词boundarym

var nameOne = "Tyler Durden";
nameOne.match(/^[A-Z][a-zA-Z]*(\s+[A-Z][a-zA-Z]*)*$/);
>>> [ "Tyler Durden", " Durden" ]

var nameTwo = "Tyler Francis Durden";
nameTwo.match(/^[A-Z][a-zA-Z]*(\s+[A-Z][a-zA-Z]*)*$/);
>>> ["Tyler Francis Durden", " Durden"]
由于括号定义了捕获组,因此最终名称为捕获的匹配项。若要获取匹配的全名,请使用

nameTwo.match(/^[A-Z][a-zA-Z]*(\s+[A-Z][a-zA-Z]*)*$/)[0];
>>> "Tyler Francis Durden"

如果您只关心匹配与不匹配,那么您可以测试null的返回值,您尝试了什么?Javascript的第一条规则:不要谈论Javascript!因此,像德拉鲁这样的名字都是像奥莱利和伍德沃德法院这样的旗帜名字,也将是旗帜名字。德尔的首字母将被禁止,直到123泰勒·杜登123通过这个正则表达式。使用“^”和“$”这只匹配两个名称。OP需要多个名称。多个名称需要用空格分隔。用空格标记会更合适。那么非拉丁字母的名字,或者包含撇号的名字,例如O'Relly^[A-ZА-Я]['A-ZЯ-A-ZА-Я]*[A-ZА-Я]['A-ZЯ-A-ZА-A-ZА-A-1071;]***$编辑以前一直在吃我的字。。添加了代码部分
nameTwo.match(/^[A-Z][a-zA-Z]*(\s+[A-Z][a-zA-Z]*)*$/)[0];
>>> "Tyler Francis Durden"