需要测试JS正则表达式

时间:2016-06-16 16:06:56

标签: javascript jquery regex

当我输入输入时,文字出现在图像上。我想让代码像这样工作:

当用户键入由正则表达式识别的字符然后将其放在图像上时,只是抛出一些错误或者不要在输入字段中输入它。

这是正则表达式:[A-Z0-9a-z&,.-/()@*+!?"':; -]

我正试图像这样实现它:

$("#firstText").keyup(function () {
  var value = $(this).val().toUpperCase();
  var regex = "[A-Z0-9a-z&,.-/()@*+!?"':; -]";

  if(regex.test(value))
  {
    $(".zetin16").text(value);
  } else {
    alert('this is bad');
  }
});

但是我收到了这个错误:Uncaught SyntaxError: Invalid or unexpected token

在这一行:var regex = "[A-Z0-9a-z&,.-/()@*+!?"':; -]";

提前感谢您的帮助。

更新

正则表达式工作正常。现在我想防止在正则表达式与字符匹配时在输入中键入字符。这是我目前的代码:

$("#firstText").keyup(function(e) {
    var value = $(this).val().toUpperCase();
    var regex = new RegExp(/[A-Z0-9a-z&,.-/()@*+!?"':; -]/);

    if (regex.test(value)) {
        $(".zetin16").text(value);
    } else {
        e.preventDefault();
        return false;
    }
});

3 个答案:

答案 0 :(得分:2)

使用正则表达式,使用正斜杠作为分隔符。如果在正则表达式本身内作为文字出现正斜杠,则将其转义:

var regex = /[A-Z0-9a-z&,.-\/()@*+!?"':; -]/;

参考:JavaScript regex replace - escaping slashes

(原始字符串的问题在于它包含双引号,并且同时使用双引号分隔。)

答案 1 :(得分:1)

您看到的确切错误是因为您将变量定义为双引号字符串,其中包含未转义的双引号。

无论如何它不应该是一个字符串。它应该是这样的正则表达式。

var regex = /[A-Z0-9a-z&,.-/()@*+!?"':; -]/;

答案 2 :(得分:0)

尝试使用此模式使用正则表达式

var regex = "['A-Z0-9a-z&,.-/()@*+!?':; -]";

var reg =new RegExp(regex)

var val ="asss"

reg.test(val)