如何使用jquery阻止或限制输入字段中的特殊字符?如何使用jquery阻止特殊字符输入到输入字段?
3 回答
萧十郎
TA贡献1815条经验 获得超13个赞
一个使用正则表达式的简单示例,您可以将其更改为允许/禁止您喜欢的任何内容。
$('input').on('keypress', function (event) {
var regex = new RegExp("^[a-zA-Z0-9]+$");
var key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}});
红糖糍粑
TA贡献1815条经验 获得超6个赞
我一直在寻找一个限制输入仅限于字母数字字符的答案,但仍然允许使用控制字符(例如,退格键,删除键,制表符)和复制+粘贴。我尝试的答案都没有满足所有这些要求,所以我想出了以下使用该input事件。
$('input').on('input', function() {
$(this).val($(this).val().replace(/[^a-z0-9]/gi, ''));});编辑:
正如rinogo在评论中指出的那样,上面的代码片段在输入文本的中间键入时强制光标到输入的末尾。我相信下面的代码片段可以解决这个问题。
$('input').on('input', function() {
var c = this.selectionStart,
r = /[^a-z0-9]/gi,
v = $(this).val();
if(r.test(v)) {
$(this).val(v.replace(r, ''));
c--;
}
this.setSelectionRange(c, c);});
catspeake
TA贡献1111条经验 获得超0个赞
简短回答:阻止'按键'事件:
$("input").keypress(function(e){
var charCode = !e.charCode ? e.which : e.charCode;
if(/* Test for special character */ )
e.preventDefault();})答案很长:使用像jquery.alphanum这样的插件
选择解决方案时需要考虑以下几点:
粘贴文字
上述代码可以防止像退格或F5这样的控制字符。
é,í,ä等
阿拉伯语或中文......
跨浏览器兼容性
我认为这个领域足够复杂,可以保证使用第三方插件。我尝试了几个可用的插件,但发现每个插件都有一些问题所以我继续写了jquery.alphanum。代码如下所示:
$("input").alphanum();或者对于更精细的控制,添加一些设置:
$("#username").alphanum({
allow : "€$£",
disallow : "xyz",
allowUpper : false});希望能帮助到你。
- 3 回答
- 0 关注
- 1683 浏览
添加回答
举报
0/150
提交
取消
