最笨的方法是:
var str = 'zz112kdd'//输入的内容var arr = {'1':'1', '2':'2', '3':'3'}//要过滤掉的字符,用对象方便查找,如果是数组的话就要遍历
var result=''//过滤后字符串
for (var i = 1, length = str.length i < length i++) {
var s = str.substring(i - 1, i)//截取字符
var s1 = arr[s]//判断这个字符是否在敏感词对象里,匹配不到就返回undefined
if (s1 == undefined) result += s//不是敏感词就保留下来
}
估计正则表达式也可以实现,但稍微有点麻烦。
1、jQuery使用正则匹配替换特殊字符
function RegeMatch(){var pattern = new RegExp("[~'!@#$%^&*()-+_=:]")
if($("#name").val() != "" && $("#name").val() != null){
if(pattern.test($("#name").val())){
alert("非法字符!")
$("#name").attr("value","")
$("#name").focus()
return false
}
}
}
2、jQuery限制输入ASCII值
//数字0-9的ascii为48-57//大写A-Z的ascii为65-90
//小写a-z的ascii为97-122
// ----------------------------------------------------------------------
// <summary>
// 限制只能输入数字和字母
// </summary>
// ----------------------------------------------------------------------
$.fn.onlyNumAlpha = function () {
$(this).keypress(function (event) {
var eventObj = event || e
var keyCode = eventObj.keyCode || eventObj.which
if ((keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 97 && keyCode <= 122))
return true
else
return false
}).focus(function () {
this.style.imeMode = 'disabled'
}).bind("paste", function () {
var clipboard = window.clipboardData.getData("Text")
if (/^(\d|[a-zA-Z])+$/.test(clipboard))
return true
else
return false
})
}
//-----调用方法$("#文本框id").onlyNumAlpha()
3、js正则匹配过滤
function stripscript(s){
var pattern = new RegExp("[`~!@#$^&*()=|{}':',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]")
var rs = ""
for (var i = 0 i < s.length i++) {
rs = rs+s.substr(i, 1).replace(pattern, '')
}
return rs
}