正则表达式字符串正确但不起作用

时间:2013-04-12 07:34:27

标签: javascript regex

我有一个正则表达式

function checkNum(form) {
    var regex = "/^\d+/";
    if (!form.value.match(regex)) {
        alert('Please Enter value again');
        form.value = "";
    }
}

但它不起作用。

我在这个网站http://www.regular-expressions.info/javascriptexample.html中输入了这个正则表达式/ ^ \ d + $ /,但它似乎在这个网站上也没有用。我很确定这个表达是正确的

2 个答案:

答案 0 :(得分:3)

正则表达式文字是/^\d+/ ,没有引号。

function checkNum(form) {
    var regex = /^\d+$/; //Pure digits from start to end
    if (!form.value.match(regex)) {
        alert('Please Enter value again');
        form.value = "";
    }
}

演示http://jsfiddle.net/KvuaM/


如果您将字符串 "/^\d+/"传递给.match(),那么由于隐式转换和/\/^d+\//无效,您将获得相当于"\d"的正则表达式逸出。

new RegExp("/^\d+/").source
//"/^d+/"

答案 1 :(得分:0)

字符串中有斜杠,这些斜杠被解释为文字。 从字符串中删除它们,或使用它们来创建正则表达式 “^ \ d +” 要么 / ^ \ d + /