我想自动删除所有与输入中的模式不匹配的字符。我首先尝试使用“^”(例如:“[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”时,不应将其删除。
添加回答
举报
0/150
提交
取消