2011-04-21 157 views
1

我有JS的regExp来验证名字var regExp = /^[A-Za-z]$/;,我想允许它的空间,我怎么能?JS验证允许空间

现在它允许一个z和A到Z字符只,我只需要允许空间。

在此先感谢。

回答

0

@ThiefMaster的解决方案显示了如何为正则表达式添加空间。

但是,如果你的意图是匹配一个名字,那么你可能会做得更好。例如,可以说,有效的名称是(改编自XRegExp)的任何一个或多个有效的Unicode字母字符:

var unicodeWord = XRegExp("\\p{L}+"); 
unicodeWord.test("San Juan"); // true 
unicodeWord.test("Русский"); // true 
unicodeWord.test("日本語"); // true 
unicodeWord.test("العربية"); // true 

[编辑]

注意,上述表达式中的任何名称相匹配,其有一个或多个Unicode字母,包括其他字符(如“San Juan”,“O'Connors”或“Anne-Marie”)的名称。

+0

'\ p {L }'比'[a-zA-Z]'更好,但是不匹配'O'Connors'或'Anne-Marie'这样的名字吗? – Toto 2011-04-21 11:30:37

+0

这样的名字的任何解决方案? – 2011-04-21 11:53:49

+0

@iamtheladylegend:只需将类char中的那些字符添加为'[\ p {L}' - ]' – Toto 2011-04-21 12:24:30

0

您无法通过任何正则表达式验证自然名称。所以请停止这样做 - 它只是用户名中有字符的用户不匹配你的正则表达式。

无论如何,/^[A-Za-z ]$/是你正在寻找的正则表达式。

+0

'/^[A-Za-z0-9] $ /'如果我这样写,它会允许0-9吗? – 2011-04-21 09:54:53

+0

是的。但真实姓名通常不包含数字。 – ThiefMaster 2011-04-21 09:58:37

+0

好的,谢谢:) – 2011-04-21 10:01:50