2013-04-11 23 views
0

我的源驗證合規的,不正常

var reg:RegExp = /[0-9A-Za-z]/;

reg.test("fsfm32423sda"); - 現在是真正的

reg.test("fsfm32423sda!!!___---"); - 現在是真的 - 但是,因爲該字符串包含的字符"!_-"一定是假的 - 他們不是包含在「var reg」中

該怎麼辦?

回答

1

你只測試一個字符,因爲你沒有量詞。嘗試:

var reg:RegExp = /^[0-9A-Za-z]+$/; 

插入符號^標誌着字符串的開頭,美元$結束。

1

這個問題:[0-9A-Za-z]是它會匹配任何可能有字母或數字的字符串。但是,它沒有指定其他任何東西。將其更改爲^[0-9A-Za-z]+$應該可以解決您的問題。

錨點^$的作用是它們指示正則表達式引擎分別在字符串的開始和結束處開始和停止匹配。這將確保您的字符串完全由一個或多個字母和/或數字組成。