JS验证允许空间
@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”)的名称。
您无法通过任何正则表达式验证自然名称。所以请停止这样做 - 它只是用户名中有字符的用户不匹配你的正则表达式。
无论如何,/^[A-Za-z ]$/
是你正在寻找的正则表达式。
'/^[A-Za-z0-9] $ /'如果我这样写,它会允许0-9吗? – 2011-04-21 09:54:53
是的。但真实姓名通常不包含数字。 – ThiefMaster 2011-04-21 09:58:37
好的,谢谢:) – 2011-04-21 10:01:50
'\ p {L }'比'[a-zA-Z]'更好,但是不匹配'O'Connors'或'Anne-Marie'这样的名字吗? – Toto 2011-04-21 11:30:37
这样的名字的任何解决方案? – 2011-04-21 11:53:49
@iamtheladylegend:只需将类char中的那些字符添加为'[\ p {L}' - ]' – Toto 2011-04-21 12:24:30