我使用正則表達式來驗證一個字符串只包含字母和空格。正則表達式定義爲給出錯誤輸出的正則表達式
var regex = /^[A-Za-z ]/;
但即使我使用字符串「X」測試它,它會給出一個真實結果。
這裏有什麼錯誤?
我使用正則表達式來驗證一個字符串只包含字母和空格。正則表達式定義爲給出錯誤輸出的正則表達式
var regex = /^[A-Za-z ]/;
但即使我使用字符串「X」測試它,它會給出一個真實結果。
這裏有什麼錯誤?
^[A-Za-z ]
只匹配一個字符。和^
表示字符串的開始。要完成你想要的,使用:
+
- 這意味着匹配一個或多個。或者,您可以使用:
*
- 表示匹配零個或多個。
但我認爲你最好用第一個(+
)。另一件事是,匹配整個字符串。這意味着您必須從第一個字符到最後一個字符進行搜索。
$
- 這意味着匹配結束。
您的代碼應該是這樣的:
var regex = /^[A-Za-z ]+$/;
你的正則表達式匹配你輸入的第一個字母,因此返回true。你需要添加$
,以確保您只匹配從一開始(^
)到最後($
)一個完整的字符串。
var regex = /^[A-Za-z ]*$/;
你的正則表達式僅僅意味着:*字符串必須以一個字母或一個空格*,但沒有別的開始。試試這個:'/^[A-Za-z] * $ /'。 – sp00m