如何模式匹配精确间隔的名称?

时间:2012-11-08 04:34:43

标签: javascript regex

如何为名称编写模式,如果需要,该模式只能包含由单个空格分隔的字母?如果有多个名称,则必须用一个空格分隔。

例如, "Jane Doe""Jane"是正确的,但" Jane""Jane ""Jane Doe"都不正确。

我的模式,

/^([A-za-z]+ ?[A-za-z]+){1}$/

2 个答案:

答案 0 :(得分:2)

如果我理解正确的话,试试这个:

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

答案 1 :(得分:1)

您的正则表达式未检查完整的大写字母范围(A-z必须为A-Z)

注意:这是假设您的问题包含拼写错误,事实上“Jane Doe”或“Jane Doe”不正确。

var patt=new RegExp(/^([A-Za-z]+ ?[A-Za-z]+){1}$/);
document.write(patt.test(" Jane Doe") + '<br/>'); --false
document.write(patt.test("Jane Doe") + '<br/>'); --true
document.write(patt.test(" Jane") + '<br/>'); -- false
document.write(patt.test("Doe ") + '<br/>'); -- false
document.write(patt.test("Doe") + '<br/>'); -- true

请参阅小提琴:http://jsfiddle.net/FEycT/4/