使用jQuery替换字符

时间:2010-09-22 14:50:51

标签: javascript jquery

我正在尝试使用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”键时,当我仍然按住它时,我将按另一个键,它将在文本中添加空格。

有没有机会改进代码来摆脱这个? 任何帮助都是最受欢迎的。

由于 皮特

2 个答案:

答案 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 :用空字符串替换字符比用空格替换

更好