2011-04-21 214 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