2010-05-16 86 views
0

我有这样的代码,它看起来正常的,是很基本的,但我不能让它工作:的Javascript简单的正则表达式不起作用

function checkValid(elem){ 

var abc = elem.value; 

var re = "/[0-9]/"; 

var match = re.test(abc); 

alert(match); 
} 

它匹配0和9,而不是1到8 ,这里有什么问题?谢谢。

回答

0

使用\ d匹配一个数字,使之成为正规expresison,而不是一个字符串:

var abc = elem.value; 
var re = /\d/; 
var match = re.test(abc); 
alert(match); 
+0

谢谢!现在它工作:) – bah 2010-05-16 23:36:25

3

re是一个字符串,而不是RegExp对象。

你需要使用正则表达式的文字,而不是一个字符串,像这样:

var re = /[0-9]/; 

而且,这会为一个包含若干个字符串中的任何地方的任何字符串返回true。
你可能想将其更改为

var re = /^[0-9]+$/; 
3

尝试删除双引号...

var re = /[0-9]/;