javascript string.replace 否定列表

标签 javascript regex

我知道在处理正则表达式时最好使用白名单,但由于客户要求我不能这样做。他们不希望我们阻止用户输入特殊字符——我们需要允许他们输入它们,然后在保存之前将它们删除。

假设我有这样的东西:

$('#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/

相关文章:

c++ - vector 中每个元素的模式匹配

javascript - 如何在 Javascript 中捕获 printscreen 事件?

javascript - window.open弹出窗口阻止问题

javascript - 使用 JavaScript SDK 在包含 HTML 标签的 Facebook 上发布状态

jquery - 寻找正则表达式仅替换三位数后的空格

regex - 用于验证英国国民保险号的正则表达式

javascript - ExtJS 列布局,移动可调整大小的面板而不重叠

javascript - 仅使用 JavaScript 调用 Marketo API

regex - 如何动态构建 Perl 正则表达式?

regex - 测量单位正则表达式操作