JS 替換所有的空格


在JS中替換掉輸入框內的空格,是在處理表單需求的時候極為常用的一項操作,以防止用戶的操作習慣引起數據異常,保證傳參的安全性。

NO.1

name.replace(" ","");

上述方法是很簡單的替換,但是有兩個弱點:
1.只能替換單個英文空格或者中文空格(全角);
2.只能替換當前字符串的第一個匹配項。

NO.2

name.replace(new RegExp(/( )/g),"");

上述方法是通過正則匹配,能夠進行全部替換,但是還是有一個弱點:
1.只能替換英文空格或者中文空格(全角)中的一種。

NO.3

name.split(" ").join("");

上述方法是通過字符分隔再合並,能夠進行全部替換,但是還是有一個弱點:
1.只能替換英文空格或者中文空格(全角)中的一種。

NO.4

name.replace(/(^\s*)|(\s*$)/g,"");

上述方法是通過正則匹配,能夠替換英文或者中文空格,但是有一個弱點:
1.只能替換首尾的空格,對字符串中間的空格不起作用。

終極殺招

name.replace(/\s+/g,"");

上述方法是通過正則匹配,能夠替換英文或者中文空格,並進行全部替換。

【注意】JS中並沒有所謂的replaceAll方法,經筆者測試結果“undefined”,頁面上無法識別的。當然也有一種可迂回的方案,那就是根據replace的功能進行replaceAll方法原型重寫:

String.prototype.replaceAll = function(reallyDo, replaceWith, ignoreCase) {  
    if (!RegExp.prototype.isPrototypeOf(reallyDo)) {  
        return this.replace(new RegExp(reallyDo, (ignoreCase ? "gi": "g")), replaceWith);  
    } else {  
        return this.replace(reallyDo, replaceWith);  
    }  
}  

轉載請注明:似水流年 » JS 替換所有的空格


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM