我正在尝试使用js替换除字母数字之外的所有特殊字符。
function checkWholeString(string,len){
if(string != null && string != ""){
var regExp = /^[A-Za-z0-9-]+$/;
for(var i=0; i < string.length; i++){
var ap = string.charAt(i);
if(!ap.match(regExp)){
string = string.replace(ap," ");
}
}
return jQuery.trim(string);
}
}
麻烦的是,当我按住例如按下“a”键时,当我仍然按住它时,我将按另一个键,它将在文本中添加空格。
有没有机会改进代码来摆脱这个? 任何帮助都是最受欢迎的。
由于 皮特
答案 0 :(得分:0)
尝试类似:
function onkeyup(event,directoryName) {
return directoryName.replace(/([.?*+^$[\]!\\/\'@\"(){}-])/g, "");
}
这是我在传递的几个项目中用来删除特殊字符的。
答案 1 :(得分:0)
1)使用.blur()
事件
$(function() {
$('textarea').bind('blur', function() {
var val = $(this).val().replace(/[^A-Za-z0-9- ]/g,' ')
val = val.replace(/^\s+|\s$/g,'');
$(this).val( val );
});
});
测试此代码 http://jsbin.com/ebene4
2)使用.keypress()
.keyup()
次事件
$(function() {
$('textarea').bind('keyup keypress', function() {
var input = $(this).val() ;
//replace special chars in the input string with a blank space
input = input.replace(/[^A-Za-z0-9- ]/g,' ');
$(this).val(input);
}).bind('blur', function() {
$(this).val( $.trim($(this).val()) );
});
});
你可以在这里试试 http://jsbin.com/amera3
PS :用空字符串替换字符比用空格替换
更好