如何将反斜杠附加到javascript变量

时间:2013-09-18 11:42:08

标签: javascript regex

我有一个控件,其中包含以下内容。

"time1":{    
       "regex": ^([0-9]|0[0-9]|1[0-3]|2[0-3]):[0-5][0-9]$,
       "alertText": "* Invalid Time"
    }

我有一个方法,它将采取以下输入:

//for regex validation
    function inputFilter(inputbox, regex) {

        var regExStart = "/\\";
        var regExEnd = "/\\";

        consol.log("Reg Ex Validation : "+regExStart + regex + regExEnd);
        txb.value = inputbox.value.replace( regex, "");
    }

当我调用上述方法时,我得到以下内容:Uncaught SyntaxError: Unexpected token ILLEGAL

我不确定我是否在构建regex时犯了错误。我认为应该是这样的:

 /^([0-9]|0[0-9]|1[0-3]|2[0-3]):[0-5][0-9]$/ and i have to append `//` with my `regex`.

请帮我这样做。

2 个答案:

答案 0 :(得分:1)

您可以从字符串中编译正则表达式,如下所示:

var regexCompiled = new RegExp(regex);
txb.value = inputbox.value.replace(regexCompiled, "");

此外,您的模式可能缺少引号:

"regex": "^([0-9]|0[0-9]|1[0-3]|2[0-3]):[0-5][0-9]$",

当然,你可以在那里使用正则表达式,如下所示:

"regex": /^([0-9]|0[0-9]|1[0-3]|2[0-3]):[0-5][0-9]$/,

然后你甚至不必编译它。

答案 1 :(得分:0)

您可以在javascript中创建正则表达式

var re = /^[a-z]$/g;

var re = new RegExp("^[a-z]$", "g");

请参阅Regular Expressions