js replace方法

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串
语法:stringObject.replace(regexp/substr,replacement)
说明:regexp/substr(必须),规定子字符串或要替换的模式的RegExp对象。如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为RegExp对象。
replacement(必须): 替换文本或生成替换文本的函数
返回值:一个用replacement替换了regexp的第一次匹配或所有匹配之后得到的新字符串。

replacement是字符串:

基本用法1:

var str="Visit Microsoft!"
console.log(str.replace(/Microsoft/, "W3School")); // Visit W3School!

replacement 中的 $ 字符具有特定的含义

  • $1、$2、...、$99  表示从左到右,正则子表达式(组)匹配到的文本
// 将把 "Doe, John" 转换为 "John Doe" 的形式
var name = "Doe, John";
name.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1"); // John Doe

// 把所有的花引号替换为直引号
var name2 = '"a", "b"';
name2.replace(/"([^"]*)"/g, "'$1'");  // "'a', 'b'"
  • $&  表示regexp 相匹配的子串。
var str = 'Visit Microsoft';
str = str.replace(/Visit Microsoft/g,"$& ,W3School");
console.log(str); // Visit Microsoft ,W3School
  • $` 位于匹配子串左侧的文本。
var str = 'Visit Microsoft';
str = str.replace(/Microsoft/g,'$`');
console.log(str); // Visit Visit 
  • $' 位于匹配子串右侧的文本。
var str = 'Visit Microsoft';
str = str.replace(/Visit/g,"$'");
console.log(str); //  Microsoft Microsoft
  • $$  直接量符号  插入一个"$"
var str = "javascript";
str = str.replace(/java/,"$$") 
console.log(str); // $script

replacement是函数:

函数参数: match表示匹配的子串(对应上面的$&); 

p1, p2,...  假如replace()方法的第一个参数是一个RegExp 对象,则代表第n个括号匹配的字符串。(对应于上述的$1,$2等。)例如,如果是用 /(\a+)(\b+)/ 这个来匹配,p1 就是匹配的 \a+p2 就是匹配的 \b+

offset 匹配到的子字符串在原字符串中的偏移量。(比如,如果原字符串是 'abcd',匹配到的子字符串是 'bc',那么这个参数将会是 1)

string  被匹配的原字符串。

(精确的参数个数依赖于 replace() 的第一个参数是否是一个正则表达式(RegExp)对象,以及这个正则表达式中指定了多少个括号子串。)

 

另外推荐一个正则可视化的网站工具:https://regexper.com

  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值