0

我动态创建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)$"同样,我将传递不同的正则表达式值,而我上面给出的是 for Alphanumeric。我将像上面一样传递不同的正则表达式值。

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

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

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

4

1 回答 1

0

错误来自您的正则表达式: ^(?![ ])(?=.*[\w]).{1,70}(?

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

也许你的意思是:

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

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

于 2014-03-02T00:25:48.343 回答