当我输入输入时,文字出现在图像上。我想让代码像这样工作:
当用户键入由正则表达式识别的字符然后将其放在图像上时,只是抛出一些错误或者不要在输入字段中输入它。
这是正则表达式:[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;
}
});
答案 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)