Jquery 使用正则表达式允许不允许的文本

Jquery 使用正则表达式允许不允许的文本,jquery,regex,Jquery,Regex,我试图使用正则表达式将字符限制为字母和数字 $('#textbox').on("keypress", function (e) { var regex = new RegExp("^[a-zA-Z0-9]+$"); // How do I proceed? }); 然而,我不知道现在该如何进行?如何处理复制粘贴?遵循剩余的解决方案 更新:您应该侦听'input'和propertyChangeEvent以处理粘贴事件,并执行一些自定义逻辑以除去不匹配的字符。但这取决于业务需求。遵

我试图使用正则表达式将字符限制为字母和数字

$('#textbox').on("keypress", function (e) {
    var regex = new RegExp("^[a-zA-Z0-9]+$");
    // How do I proceed?
});

然而,我不知道现在该如何进行?如何处理复制粘贴?

遵循剩余的解决方案


更新:您应该侦听'input'和propertyChangeEvent以处理粘贴事件,并执行一些自定义逻辑以除去不匹配的字符。但这取决于业务需求。

遵循剩余的解决方案


更新:您应该侦听'input'和propertyChangeEvent以处理粘贴事件,并执行一些自定义逻辑以除去不匹配的字符。但这取决于业务需求。

对于我的解决方案,我使用了一个技巧-代码需要从输入字段中删除最后写入的字符,以使其正常工作。一个例子是

这是你的案子

$('#textbox').keyup(function (e) {
    this.value = this.value.replace(/[^a-z0-9]/ig, '');
});

当它搜索并替换手机输入的内容时,它将用于粘贴值。您可以在中进行测试。

对于我的解决方案,我使用了一个技巧-代码需要从输入字段中删除最后写入的字符,以使其正常工作。一个例子是

这是你的案子

$('#textbox').keyup(function (e) {
    this.value = this.value.replace(/[^a-z0-9]/ig, '');
});

当它搜索并替换手机输入的内容时,它将用于粘贴值。您可以在中进行测试。

在较新的浏览器中,
输入事件应捕获键、粘贴和其他输入等,然后只需替换值中非数字字符或数字的任何内容即可

我会使用
/W
,它允许下划线和一些其他字符,但会过滤掉大多数不是字母数字或数字的字符

$('#textbox').on("input", function (e) {
    this.value = this.value.replace(/\W/g, '');
});

在较新的浏览器中,
输入
事件应捕获键、粘贴和其他输入等,然后只需替换值中非字母或数字的任何内容即可

我会使用
/W
,它允许下划线和一些其他字符,但会过滤掉大多数不是字母数字或数字的字符

$('#textbox').on("input", function (e) {
    this.value = this.value.replace(/\W/g, '');
});

因素太多,您最好检查
blur
change
…因素太多,您最好检查
blur
change
…更新为完整功能更新为完整功能很好的解决方案!)+1我在编辑框事件中使用此技术
[^\w_]+
也应该起作用。@TomHodder-on
\w
匹配a-z、a-z、0-9和下划线,在正则表达式中相反的是使用大写字符,所以
\w
匹配除a-z、a-z、0-9和下划线之外的所有字符。这与
\d
是一样的,它匹配数字,而
\d
匹配除了数字以外的所有东西。哦,我明白了,我不明白,我以为你在哪里得到了空格,但不想要它们。要允许使用空格,您必须使用\W以外的其他内容,如->一个很好的解决方案!:)+1我在编辑框事件中使用此技术
[^\w_]+
也应该起作用。@TomHodder-on
\w
匹配a-z、a-z、0-9和下划线,在正则表达式中相反的是使用大写字符,所以
\w
匹配除a-z、a-z、0-9和下划线之外的所有字符。这与
\d
是一样的,它匹配数字,而
\d
匹配除了数字以外的所有东西。哦,我明白了,我不明白,我以为你在哪里得到了空格,但不想要它们。要允许使用空格,您必须使用\W以外的内容,如->通过鼠标右键单击上下文菜单粘贴时是否会触发键控?或者是否有涵盖所有内容的常规更改事件?@sln否,
keyup
仅适用于键盘事件。我没想到这个。@adeneo给出的答案,有一个叫做
input
的一般更改事件,我应该在我的答案中使用它来涵盖鼠标事件。通过更新我的答案,它与他的答案不会有什么不同,所以我会保持现在的状态。通过鼠标右键单击上下文菜单粘贴时是否会触发按键?或者是否有涵盖所有内容的常规更改事件?@sln否,
keyup
仅适用于键盘事件。我没想到这个。@adeneo给出的答案,有一个叫做
input
的一般更改事件,我应该在我的答案中使用它来涵盖鼠标事件。通过更新我的答案,它与他的答案不会有什么不同,所以我会保持现在的状态。