在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 替換所有的空格