资讯专栏INFORMATION COLUMN

字符串replace方法的使用

jokester / 1097人阅读

方法名:str.replace(regexp|substr, newSubStr|function) 作用:返回一个由替换值替换一些或所有匹配的模式后的新字符串
参数详解:
第一个参数可以为正则对象或者字符串字面量
第二个参数可以为一个新字符串也可以为一个函数,该函数返回替换项
1、第二个参数为字符串的情况:
a、常见情况:
var str="abcdefg";
var reg=/cd/g;
str=str.replace(reg,"");
console.log(str);   //abefg
b、使用变量名替换特定部位:(注意要替换特定部位的话,在正则对象中要是用括号包裹)

变量为$$的情况:插入用$符号替换正则对象中括号包裹的字符所匹配到的内容

var str="abcdefg";
var reg=/(c)d/g;
str=str.replace(reg,"$$d");//这里括号包裹的c被$替换了,然后再替换整个匹配到的cde
console.log(str);//ab$defg

变量为$n的情况:插入匹配第n个括号中的字符

var str="abcdefg";
var reg=/(c)d(e)/g;
str=str.replace(reg,"$2d$1");   //这里把匹配的第一个内容合第二个内容替换位置($1匹配第一个位置,$2匹配第二个位置),然后再替换整个匹配到的cde
console.log(str);   //abedcfg

变量为$&的情况:插入被正则对象匹配到的字符

var str="abcdefg";
var reg=/(c)d(e)/g;
str=str.replace(reg,"$&d$1$2");//这里在匹配到的d前面插入整个匹配到的字符cde,在d后面插入匹配到的第一个和第二个括号中的内容,然后再替换整个匹配到的cde
console.log(str);//abcdedcefg

变量为$`的情况:插入当前匹配的子串左边的内容

var str="abcdefg";
var reg=/(c)d(e)/g;
str=str.replace(reg,"d$`");//这里是把匹配到的字符串cde左边内容ab插入到d后面,然后再替换整个匹配到的cde
console.log(str);//abdabfg

变量为$"的情况:插入当前匹配的子串右边的内容

var str="abcdefg";
var reg=/(c)d(e)/g;
str=str.replace(reg,"d$"");//这里是把匹配到的字符串cde右边内容fg插入到d后面,然后再替换整个匹配到的cde(注意这里的单引号要用双引号包裹)
console.log(str);//abdfgfg
1、第二个参数为函数的情况:
替换函数参数详解
变量名 代表的值
match 匹配的子串。(对应于上述的$&。)
p1,p2, ... 类似于上述$1,$2……
offset 匹配到的子字符串在原字符串中的偏移量。(比如,如果原字符串是“abcd”,匹配到的子字符串是“bc”,那么这个参数将是1)
string 被匹配的原字符串。
var str="xiaoming";
var reg=/(a)o(m)/g;
function replacer(match, p1, p2, offset, string) {
    console.log(match, p1, p2, offset, string);//aom a m 2 xiaoming
  return [p1, p2].join(" - ");
}
var newString = str.replace(reg, replacer);
console.log(newString);  //xia - ming

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/107265.html

相关文章

  • 一道小小题目引发对javascript支持正则表达式相关方法探讨

    摘要:返回值返回值根据传入的参数类型和规则的不同,返回的内容不同,但总体来说,它是返回一个对象,而不是索引,如果没匹配到任何符合条件的字符串,则返回。 本文发布在我的博客一道小小的题目引发对javascript支持正则表达式相关方法的探讨许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。 以前对于正则是非常惧怕的,因为看不懂和学不会。但最近项目中频繁的...

    Scholer 评论0 收藏0
  • 一篇文章带你玩转正则表达式

    摘要:读这篇文章之前你需要掌握基本的知识,并且有安静舒适的环境与宽裕的时间,文章有点长,你可以选择备好或茶来慢慢学习。文章标题有点夸大了,这是一篇正则表达式的入门文章。如有错误,欢迎指正。 读这篇文章之前你需要掌握基本的JavaScript知识,并且有安静舒适的环境与宽裕的时间,文章有点长,你可以选择备好coffee或茶来慢慢学习。文章标题有点夸大了,这是一篇正则表达式的入门文章。如有错误,...

    ermaoL 评论0 收藏0
  • 正则表达式

    摘要:对象使用单个字符串来描述匹配一系列符合某个句法规则的字符串测试网站创建方式字面量构造函数元字符正则表达式由两种基本字符类型组成原义文本字符元字符元字符是在正则表达式中有特殊含义的非字母字符字符类一般情况下正则表达式一个字符对应字符串一个字符 RegExp对象 Regular Experssion使用单个字符串来描述、匹配一系列符合某个句法规则的字符串 测试网站:https://rege...

    Miracle 评论0 收藏0
  • JavaScript 正则表达式笔记

    摘要:元字符是在正则表达式中有特殊含义的非字母字符。五前瞻后顾后瞻正则表达式从文本头部向尾部开始解析,文本尾部方向,称为前。前瞻就是在正则表达式匹配到规则的时候,向前检查是否符合断言,后顾后瞻方向相反。替换与正则表达式匹配的子串。 Regular Expression 使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。按某种规则去匹配符合条件的字符串。不同编程语言的正则表达式略有不同...

    jeffrey_up 评论0 收藏0
  • JavaScript必会技能——正则表达式

    摘要:语法参数必填项,字符串或正则表达式,该参数指定的地方分割可选该参数指定返回的数组的最大长度,如果设置了该参数,返回的子字符串不会多于这个参数指定的数组。该数组通过在指定的边界处将字符串分割成子字符串。把正则表达式拆分成小表达式。 正则表达式是什么 RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具。 为什么使用正则表达式 测试字符串内的模式。例如,可以测试输入字符串...

    FrozenMap 评论0 收藏0

发表评论

0条评论

jokester

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<