用于检查全名的正则表达式

js9*_*999 5 javascript regex

我想写一个regexp来检查用户是否插入了至少两个由至少一个空格分隔的单词:

例:

var regexp = new RegExp(/^[a-z,',-]+(\s)[a-z,',-]+$/i);

regexp.test("D'avid Camp-Bel"); // true
regexp.test("John ---"); // true // but it should be false!
Run Code Online (Sandbox Code Playgroud)

dlr*_*as2 14

^[a-z]([-']?[a-z]+)*( [a-z]([-']?[a-z]+)*)+$对你有用吗?

[a-z]确保名称始终以字母开头,然后[-']?[a-z]+允许分隔字符,只要它后跟至少另一个字母.*允许任何数量的这些部件.

下半部分( [a-z]([-']?[a-z]+)*)匹配一个空格,后跟另一个相同模式的名称.+确保至少有一个额外的名称,但允许更多.({1,2}如果您只想允许两个或三个部件名称,则可以使用.


小智 5

更简单的版本

    /^([\w]{3,})+\s+([\w\s]{3,})+$/i
Run Code Online (Sandbox Code Playgroud)

([\w]{3,})名字应该只包含字母并且长度为 3 或更多

+\s名字后面应该跟一个空格

+([\w\s]{3,})+第二个名字应该只包含长度为 3 或更多的字母,并且后面可以跟其他名字

/i忽略字母的大小写。可以是大写或小写字母