2013-06-12 49 views
3

我有一個條件,我必須用' - '替換空的空間,並且所有其他符號(如「*,%,',@,$ ....等)」應該是例如,如果我有一個詞現實生活,它應該被寫爲現實生活,另一個例子,如果我有一個詞消防官員協會,它應該被寫爲消防官員協會。使用jquery刪除文本中的特殊字符

我可以使用jQuery像更換空的空間:

var product= $("#product").val().replace(/ /g,'-'); 

,但即時通訊掙扎去除特殊字符

任何可以提供有關如何acheive任何建議或意見, 感謝

+1

http://stackoverflow.com/questions/4374822/javascript-regexp-remove-all-special-characters – lifetimes

回答

1

嘗試使用:

var product= $("#product").val().replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, ' ') 

小提琴:http://jsfiddle.net/4YwNC/

+0

http://js.do/code/39537試試這個對於使用jquery的onkeyup事件.. – Lucky

+1

@Lucky太棒了! =) –

2

添加到您的代碼:

//@Author Karl-André Gagnon 
if(String.prototype.replace){ 
    String.prototype.oldReplace = String.prototype.replace; 
    String.prototype.replace = function(find, replace){ 
     var stringReturned = this; 
     if(!find || !replace) return undefined; 
     if(find instanceof Array){ 
      if(typeof replace == 'string'){ 
       for(var i = 0; i < find.length; i++){ 
        stringReturned = stringReturned.oldReplace(find[i],replace); 
       } 
      }else if(replace instanceof Array && replace.length == 1){ 
       for(var i = 0; i < find.length; i++){ 
        stringReturned = stringReturned.oldReplace(find[i],replace[0]); 
       } 
      }else if(replace instanceof Array){ 
       for(var i = 0; i < find.length; i++){ 
        stringReturned = stringReturned.oldReplace(find[i],replace[i] ? replace[i] : ''); 
       } 
      }else{ 
       stringReturned = undefined; 
      } 
     }else{ 
      stringReturned = stringReturned.oldReplace(find,replace); 
     } 
     return stringReturned; 
    } 
} 

這將允許你通過數組作爲論據.replace()

然後就可以做到這一點:

string.replace([/ /g, /["*%'@$]/g],['-', '']) 

基本上,所述第一陣列的所述第一小區通過將所述第二陣列的所述第一小區所取代(如在PHP替換)。

小提琴:如果烏拉圭回合尋找http://jsfiddle.net/6sk3n/

+0

爲什麼downvote? –