JS处理文本框只能输入中文、英文、数字,防止SQL特殊字符注入(解决MAC中文输入法下会取得拼音的值的问题)

该博客介绍了如何使用JavaScript来限制文本框的输入,确保只能输入中文、英文和数字,从而防止可能的SQL特殊字符注入问题,特别是解决了在MAC中文输入法下可能会输入拼音的值的问题。

控制文本框只能输入中文、英文、数字

<input onkeyup="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')" onpaste="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')" oncontextmenu = "value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')">


改进方法(解决MAC中文输入法下会取得拼音的值的问题):
控制文本框只能输入中文、英文、数字和个别特殊字符包括# _ @ ! 
<input name="Owner" id="Owner" type="text"  class="user_input" placeholder="请输入用户名" maxlength="16" autocomplete="off" onpaste="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5#_@!]/g,'')" oncontextmenu="return false" />

<input name="address" id="address" type="text"  class="user_input" placeholder="请输入位置" maxlength="16" autocomplete="off"  onpaste="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5#_@!]/g,'')" oncontextmenu="return false" />
```javascript
//解决苹果MAC中文输入法下会取得拼音的值的问题
var isInputZh = false;
var isInputZh2 = false;
var search1 = document.getElementById('Owner');
var search2 = document.getElementById('address');
search1.addEventListener('compositionstart', function (e) {
  isInputZh = true;
}, false);
search1.addEventListener('compositionend', function (e) {
  isInputZh = false;
}, false);
search1.addEventListener('input', function (e) {
  if(isInputZh) return;
  var value = this.value;
  switch_input1(value);
}, false);


search2.addEventListener('compositionstart', function (e) {
  isInputZh2 = true;
}, false);
search2.addEventListener('compositionend', function (e) {
  isInputZh2 = false;
}, false);
search2.addEventListener('input', function (e) {
  if(isInputZh2) return;
  var value = this.value;
  switch_input2(value);
}, false);

function switch_input1(value){
	value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5#_@!]/g,'');
	search1.value=value;
}

function switch_input2(value){
	value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5#_@!]/g,'');
	search2.value=value;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值