-1

我有一个具有以下内容的控件。

"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`.

请帮助我做到这一点。

4

2 回答 2

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]$/,

那么你甚至不必编译它。

于 2013-09-18T11:45:04.560 回答
0

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

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

或者

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

正则表达式

于 2013-09-18T11:46:28.037 回答