2013-04-11 38 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]+$应该可以解决您的问题。

锚点^$的作用是它们指示正则表达式引擎分别在字符串的开始和结束处开始和停止匹配。这将确保您的字符串完全由一个或多个字母和/或数字组成。