我需要防止在文本区域中插入特殊字符。它应该可以在所有浏览器上使用。
我已尝试执行此操作,但不会选中“〜”,“ã”和“á”。在这种情况下,“ã”获得与“ a”相同的代码。
$('#sms_text').keydown(function(e) {if((e.keyCode>64 && e.keyCode<91) || (e.keyCode>96 && e.keyCode<123) || e.keyCode==8)
{}
else{e.preventDefault();}});
$('#sms_text').keyup(function(e){if((e.keyCode>64 && e.keyCode<91) || (e.keyCode>96 && e.keyCode<123) || e.keyCode==8)
{}
else{e.preventDefault();}});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<div class="form-group" style="width:40%">
<label for="exampleInputEmail1">Email address</label>
<textarea class="form-control" id="sms_text"></textarea>
<div class="text-right">
<h6 class="badge badge-dark"><span id="count_message">0</span>/50</h6>
</div>
</div>
在那种特殊情况下,我应该期望能预防。
答案 0 :(得分:0)
看看jQuery字母数字插件! enter link description here
//All of these are from their demo page
//only numbers and alpha characters
$('.sample1').alphanumeric();
//only numeric
$('.sample4').numeric();
//only numeric and the .
$('.sample5').numeric({allow:"."});
//all alphanumeric except the . 1 and a
$('.sample6').alphanumeric({ichars:'.1a'});
答案 1 :(得分:0)
let textAreaContainer = $('#sms_text');
textAreaContainer.keyup(function(e){
if (e != "") {
if ( /[^\w\d]/.test(e)) {
alert("Please enter only letter and numeric characters");
return (false);
} else { e.preventDefault()}
}
})
此表达式匹配 匹配[^ \ w \ d]下方列表中不存在的单个字符
或者可能是使用ur方法的解决方案,前提是如果
((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || (k >= 48 && k <= 57) || k == 190 || k == 188)