我有一个控件,其中包含以下内容。
"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`.
请帮我这样做。
答案 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");