2012-09-06 84 views
0

我使用正則表達式來驗證一個字符串只包含字母和空格。正則表達式定義爲給出錯誤輸出的正則表達式

var regex = /^[A-Za-z ]/; 

但即使我使用字符串「X」測試它,它會給出一個真實結果。

這裏有什麼錯誤?

+0

你的正則表達式僅僅意味着:*字符串必須以一個字母或一個空格*,但沒有別的開始。試試這個:'/^[A-Za-z] * $ /'。 – sp00m

回答

1

^[A-Za-z ]只匹配一個字符。和^表示字符串的開始。要完成你想要的,使用:

+ - 這意味着匹配一個或多個。或者,您可以使用:

* - 表示匹配零個或多個。

但我認爲你最好用第一個(+)。另一件事是,匹配整個字符串。這意味着您必須從第一個字符到最後一個字符進行搜索。

$ - 這意味着匹配結束。

您的代碼應該是這樣的:

var regex = /^[A-Za-z ]+$/; 
0

你的正則表達式匹配你輸入的第一個字母,因此返回true。你需要添加$,以確保您只匹配從一開始(^)到最後($)一個完整的字符串。

var regex = /^[A-Za-z ]*$/; 
0

嘗試使用這樣的:

/^[a-zA-Z\ ]+$/ 
+0

無需逃離空間。 – sp00m

0

這是正確的做法:

/^[A-Za-z ]*$/ 

Regex Demo