我知道在处理正则表达式时最好使用白名单,但由于客户要求我不能这样做。他们不希望我们阻止用户输入特殊字符——我们需要允许他们输入它们,然后在保存之前将它们删除。
假设我有这样的东西:
$('#clickMe').click(function() {
var test = $('#pizza').val();
var pattern = /[a-z][0-9]/;
if (!pattern.test(test)) {
console.log("not pass: " + test);
}
else {
console.log("passes");
}
})
我如何执行 string.replace()
并替换 test
中不在模式中的任何字符?
预计到达时间:这是一个 fiddle ;如果您在输入字段中输入类似 Esther (test*&^) pizza
的内容,我希望它返回 Esther test pizza
。
最佳答案
像这样定义你的正则表达式:
var test = $('#pizza').val();
var pattern = /[^\w\s]+/g;
if (pattern.test(test)) {
console.log("not pass: " + test);
var cleanVal = test.replace(pattern, '');
// set cleanVal to wherever you want
$('#pizza').val(cleanVal);
}
else {
console.log("passes");
}
关于javascript string.replace 否定列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18022519/