为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript / jQuery 以编程方式反转正则表达式

Javascript / jQuery 以编程方式反转正则表达式

函数式编程 2021-06-17 16:24:02
我想自动删除所有与输入中的模式不匹配的字符。我首先尝试使用“^”(例如:“[az]{2,2}”将被转换为“[^az]*”),但这仅适用于某些输入。这是我的代码:$("input:not([ignore-pattern-check])[pattern]").on("input", function(){                let val = $(this).val();                if (val.length >= 1){                    var regex = $(this).attr("pattern");                    if (regex.charAt(0) == "^"){                        regex = regex.substr(1, regex.length);                    }                    if (regex.charAt(regex.length - 1) == "$"){                        regex = regex.substr(0, regex.length - 1);                    }                    regex = regex.replace(/\{(.+?)\}/, "*");                    regex = "^(?!.*(" + regex + "))$";                    let reg = new RegExp(regex);                    if (reg.test(val)){                        alert("This char isn't allowed!");                    } else {                        _hide_message();                    }                    $(this).val(val.replace(reg, ""));                }            });编辑 示例:我有一个输入pattern="^[a-z]*$". 当我现在键入一个“A”(区分大小写)时,这个“A”应该自动从值中删除。当我键入“a”时,不应将其删除。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信