阻止特定字符输入jquery



我有一个输入字段,如下

<input type='text' class='keywordInput' value='' />

我想限制要输入的特定特殊字符。我已经编写了以下代码片段,但它在第一次输入受限字符时不起作用。

$(".keywordInput").on("keypress", function (e) {
var pattern = /[&/\#,+();@$<>?^~%":\*?<>|[]'{}]/g;
if (pattern.test(e.currentTarget.value)) {
return false
}
});

我在这里创建了jsfiddle演示。您可以尝试按>,它将输入该字符一次,之后将不允许写入任何字符(甚至是字母数字(。我的目标是防止第一次输入CCD_ 2;我想使用jquery 实现它

var pattern = /[&/\#,+();@$<>?^~%":\*?<>|[]'{}]/g;
const onKeydown = event => {
const match = event.key.match(pattern)
if (match !== null) {
event.preventDefault()
}
}
document.querySelector('.keywordInput').addEventListener('keydown', onKeydown)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<input type='text' class='keywordInput' value='' />

最新更新