美文网首页
正则捕获:字符串的replace方法

正则捕获:字符串的replace方法

作者: 子心_ | 来源:发表于2019-06-16 10:51 被阅读0次

replace:将原有的字符串替换成我们新的字符

1)在不使用正则的情况,执行一次replace只能替换字符串中的一个
2)在replace中我们可以一次批量的把所有正则匹配的内容都替换掉-->replace是支持正则的

var str = "beijingnkayun~beijingxiaofe~";
// str = str.replace("beijing", "北京").replace("beijing", "北京");
str = str.replace(/beijing/g, "北京");
console.log(str);

原理:先按照正则指定的规则,到我们的字符串中把正则匹配的内容捕获到,然后在每一次捕获后,都把捕获的内容替换成新的内容

1)我们的正则表达式捕获到几次,对应后面的function就要执行几次
2)每一次执行function的时候,我们都可以获取我们获取的内容-->和我们单独执行一次exec捕获的内容一致

// arguments[0]-->exec捕获数组的第一项-->大正则捕获的内容
// arguments[1]-->exec捕获数组的index-->开始捕获的索引
// arguments[2]--> exec捕获数组的input-->捕获的原始字符串
str = str.replace(/beijing/g, function () {
  console.dir(arguments);
})

不仅如此,我们小分组捕获的内容,在这里同样可以获取到。
3)我们在function中,通过return来返回我们要替换的内容--->是啥就把大正则捕获的内容进行替换。若不写return,默认是用undefined来替换的

str = str.replace(/(bei)(jing)/g, function () {
});
console.log(str);

如果不想实现替换的话,捕获的内容是啥,我们就返回啥->return arguments[0]

str  = str.replace(/(bei)(jing)/g, function () {
  return arguments[0];
});
console.log(str);

replace——获取次数最多的字符及次数

获取一个字符串中出现次数最多的字符,并且获取出现的次数
var str = "zzzzzzzchuangqianmingyueguang";
1)获取每一个字符出现的次数

var obj = {};
str.replace(/[a-z]/gi, function () {
  var val = arguments[0];
 obj[val] >= 1 ? obj[val] += 1 : obj[val] = 1;
});

2)获取最多出现的次数

var maxnum = 0;
for (var key in obj) {
 obj[key] > maxNum ? maxNum = obj[key] : null;
}

3)把所有符合出现maxNum次数的都捕获到

var ary = [];
for (var key in obj) {
  obj[key] === maxNum ? ary.push(key) : null;
}
console.log("出现次数最多的字符是:"+ ary.toString() + "~出现了" + maxNum + "次~")

replace——将小写的数字替换成大写的中文数字

var str = "全日制第七期学费:9800"; //玖捌零零
var ary = ["零", "壹","贰","叁","肆","伍","陆","柒","捌","玖"]
// 我们实现替换的话,需要捕获到数字,并且把数字当做ary的索引获取对应的汉字进行替换
str = str.replace(/\d/g, function () {
/*
第一次执行:大正则捕获的是9,返回的是ary[9]-->"玖"
第二次执行:大正则捕获的是8,返回的是ary[8]-->"捌"
...
*/
return ary[arguments[0]];
});
console.log(str);

相关文章

  • js笔记四十九之正则表达式(5)

    正则的捕获: 正则的exec方法/字符串的match方法/字符串的replace方法 replace: 将原有的字...

  • javascript正则表达式 execAll的实现 ----

    正则的捕获 实现正则捕获的方法 正则RegExp.prototype上的方法exectest 字符串String....

  • 正则捕获:字符串的replace方法

    replace:将原有的字符串替换成我们新的字符 1)在不使用正则的情况,执行一次replace只能替换字符串中的...

  • 正则表达式方法应用

    涉及正则表达式的方法: 字符串的方法“abc" match(); search(); replace(); 正则表...

  • 正则的扩展

    字符串的正则方法 字符串对象共有4个方法,可以使用正则表达式:match()、replace()、search()...

  • 4.正则的扩展

    回到目录 字符串的正则方法 字符串对象共有 4 个方法,可以使用正则表达式:match()、replace()、s...

  • JS去除字符串空格

    一、replace正则匹配方法 去除字符串内所有的空格:str = str.replace(/\s*/g,"");...

  • js删除字符空格

    1、replace正则匹配方法 去除字符串内所有的空格:str = str.replace(/\s*/g,"");...

  • js正则基础入门3

    match实现捕获 除了正则的exec方法实现捕获,字符串中的match方法也可以实现捕获。在学习之前,我们先来补...

  • web正则整理

    WEB 正则总结: 正则是做什么的:正则就是操作字符串的 str.replace() str.replace('把...

网友评论

      本文标题:正则捕获:字符串的replace方法

      本文链接:https://www.haomeiwen.com/subject/hmpwfctx.html