使用javascript对动态创建的元素进行RegEx验证

时间:2013-09-18 07:14:59

标签: javascript html regex onkeyup

我动态创建textbox,如下所示:

 var dataInputBox = '<input type=text  name='+id+' id=datePicker maxlength='+maxlength+' title="'+tooltip+'" onKeyUp="inputFilter(this,"'+regex+'");/>';

这是我的javascript方法:

function inputFilter(inputbox,regex) {
           txb.value = inputbox.value.replace(regex, "");
        }

正则表达式值将是:"^(?![ ])(?=.*[\w]).{1,70}(?<!\s)$"我会传递不同的正则表达式值,而我上面给出的是Alphanumeric。我将传递不同的正则表达式值,如上所述。

当我执行上面的操作时,我得到了文本框,当我尝试输入一些值时,我得到以下异常:Uncaught SyntaxError: Unexpected token }

在控制台上给出的行号不正确,如果我删除line number 2,则表明错误在onKeyUp="inputFilter(this,"'+regex+'");,而不是我没有得到此异常。

有人可以帮我解决这个问题......

1 个答案:

答案 0 :(得分:0)

错误来自你的regexpr:^(?![])(?=。* [\ w])。{1,70}(?

var r = /^(?![ ])(?=.*[\w]).{1,70}(?<!\s)$/;
SyntaxError: Invalid regular expression: /^(?![ ])(?=.*[\w]).{1,70}(?<!\s)$/: Invalid group

也许你的意思是:

^(?![ ])(?=.*[\w]).{1,70}(?!<!\s)$

注意额外的'!'在最后一组:(?!