[英]JQuery - remove the chars not matching regEx
我正在尝试使用jquery来验证表单。
这是用户的文本框中允许的模式。
var pattern = /^[a-zA-Z0-9!#$&%*+,-./: ;=?@_]/g;
如果用户键入除此之外的任何其他内容,则必须用“”替换。
$(document).ready(function() {
$('#iBox').blur(function() {
var jVal = $('#iBox').val();
if(jVal.match(pattern)) {
alert("Valid");
} else {
alert("New "+jVal.replace(!(pattern),""));
}
});
});
});
但是替换功能不能以这种方式工作。
通过在开始方括号后面立即写^
使用否定字符类 :
/[^a-zA-Z0-9!#$&%*+,-./: ;=?@_]/g
这里^
具有特殊含义,与正则表达式中的正常含义不同(通常它与行的开头匹配)。
所以你纠正的代码看起来像这样:
var pattern = /[^a-zA-Z0-9!#$&%*+,-./: ;=?@_]/g;
// ...
alert("New " + jVal.replace(pattern, ""));
另请注意,调用replace
实际上并不会更改原始字符串 - 它会返回字符串的修改后的副本。 如果要修改jVal的值,则需要重新分配给它:
jVal = jVal.replace(pattern, "");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.