在很多項目中,我們經常需要使用JS,在頁面前面對前台的某些元素做做修改,js 的replace()方法就必不可少。
經常使用"ABCABCabc".replace("A","B")的同學應該會比較清楚,改語句的最終結果是BBCABC,這種方法只能替換
第一個匹配的元素。如果替換所有呢。使用Regex即可:
"ABCABCabc".replace(/A/g,"B") 即可。
那如果想替換A的同時也可以替換a呢。
那你可以使用"ABCABCabc".replace(/a/ig,"B");
Flag: i標識ignore忽略大小,g標識global 反覆檢索,m標識多行檢索(這個暫時沒實驗)
也可以使用它們的組合,比如上面用到的ig就標識替換所有,並且忽略大小寫。
正規的正則寫法:
var reg=new RegExp(/patten/flag)
var strs="".match(reg);
當flag用了g後,strs返回的就是字串數組。
如果想要多個字串中的任意一個相匹配,則可以使用
reg=new RegExp(/abc|xyz/ig);
JavaScript 中的replace方法(全部替換replaceAll效果)
JavaScript中replace() 方法如果直接用str.replace("-","!") 只會替換第一個匹配的字元.
而str.replace(/\-/g,"!")則可以替換掉全部匹配的字元(g為全域標誌)。
str.replace(/\'-' /g,"!") '-' 是你想要被替換的字元.
Js代碼 function ieStr2ascii(str) { var re = /%/g; str = str.replace(re,"%25"); var re = /=/g; str = str.replace(re,"%3d"); re = /\?/g; str = str.replace(re,"%3f"); re = /\'/g; str = str.replace(re,"%27"); re = /&/g; str = str.replace(re,"%26"); return str; }
執行個體:
Js代碼 function encodeURL(str){ return encodeURI(str).replace(/=/g,"%3D").replace(/\+/g,"%2B").replace(/\?/g,"%3F").replace(/\&/g,"%26"); } function htmlEncode(str) { return str.replace(/&/g,"&").replace(/\"/g,""").replace(/</g,"<").replace(/>/g,">").replace(/ /g," "); } function htmlDecode(str) { return str.replace(/\"/g,"\"").replace(/\</g,"<").replace(/\>/g,">").replace(/\ /g," ").replace(/\&/g,"&"); }