[英]Regular Expression in exactly this form : Tyler Durden
Hi i need a javascript regex for a name field in my html form. 嗨,我需要一个html格式的名称字段的javascript正则表达式。 The user should be able to enter multiple names seperated with space. 用户应该能够输入多个用空格分隔的名称。 And first character of all names should be a capital. 所有名称的第一个字符都应大写。 No numbers, special chars. 没有数字,特殊字符。 etc. 等等
thank you. 谢谢。
^[A-Z][a-zA-Z]* [A-Z][a-zA-Z]*$
如果需要两个以上的名称:
^([A-Z][a-zA-Z]*)( [A-Z][a-zA-Z]*)*$
\b([A-Z][a-z]* [A-Z][a-z]*)\b
\\b
匹配宽度为0的单词boundarym。
^([AZ][az]* [AZ][az]*)*
will match the following strings and capture them into groups like so: 将匹配以下字符串并将其捕获为如下组:
Tyler Durden something else John Doe another thing Barack Obama
Tyler Durden
John Doe
Barack Obama
Tyler Durden
John Doe
Tyler Durden
John Doe
Barack Obama
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"]
Because of the parenthesis defining a capturing group you get the final name as a captured match. 由于括号中定义了捕获组,因此您可以将最终名称作为捕获的匹配项。 To get the whole name if it matches, use 要获取全名(如果匹配),请使用
nameTwo.match(/^[A-Z][a-zA-Z]*(\s+[A-Z][a-zA-Z]*)*$/)[0];
>>> "Tyler Francis Durden"
If you only care about matched vs unmatched, you can just test the return for null
如果您只关心匹配与不匹配,则可以测试返回的结果是否为null
^([A-Z][a-z]* [A-Z][a-z]*)(:b+[A-Z][a-z]* [A-Z][a-z]*)*$
You can use more than one space to separate each name. 您可以使用多个空格来分隔每个名称。 This is if you interpret being able to give "multiple names" as meaning a single name is a combination of the first and the last name. 这是如果您将能够给出“多个名称”解释为意味着单个名称是名字和姓氏的组合。
This should match multiple names like this: 这应该匹配多个名称,如下所示:
Bill Smith 比尔·史密斯
or 要么
Bill Smith Brian Jones Allan King 比尔·史密斯·布莱恩·琼斯艾伦·金
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.