在很多项目中,我们经常需要使用JS,在页面前面对前台的某些元素做做修改,js 的replace()方法就必不可少。
经常使用"ABCABCabc".replace("A","B")的同学应该会比较清楚,改语句的最终结果是BBCABC,这种方法只能替换
第一个匹配的元素。如果替换所有呢?使用正则表达式即可:
"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,"!") '-' 是你想要被替换的字符.
- 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;
- }
实例:
- 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,"&");
- }