正则替换replace中$1的用法

replace方法用于在字符串中用新内容替换匹配到的正则表达式或特定子串。它可以使用$1,$2等引用捕获组,并且第二个参数可以是函数,实现自定义替换逻辑。文章通过实例展示了如何转换单词首字母、处理电话号码以及实现模板字符串替换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、repalce定义

用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

  1. stringObject.replace(regexp/substr,replacement);
  2. 参数一:必需,规定的字符串或者正则表达式
  3. 参数二:必需,一个字符串值。规定了替换文本或生成替换文本的函数。
  4. !!!replacement 中的 $ 字符具有特定的含义。详情见W3C

 二、有$1,$2...的例子

//把 "Doe, John" 转换为 "John Doe" 的形式:
var str = "Doe, John";
str.replace(/(\w+)\s*, \s*(\w+)/, "$2 $1");
 
说明:$1,$2上就是按顺序对应小括号里面的小正则 捕获到的内容。 
str.replace(/(\d{3})\d{5}(\d{3})/g, '$1*****$2')
//把电话号码中间五位替换成*

 

三,第二个参数是函数

把字符串中所有单词的首字母都转换为大写:
var str = 'aaa bbb ccc';
uw=str.replace(/\b\w+\b/g, function(word){
  return word.substring(0,1).toUpperCase()+word.substring(1);}
  );
说明:匹配一次就执行一次函数,匹配的内容作为参数
 
//把数字转成对应的汉子
var ary=["一","二","三","四","五","六"]
"123456".replace(/\d/g,function(val){
  return ary[val-1]
})

四、一个例子,实现模板字符替换

var obj = {
	name:'leaf',
	age:20
}
var str = "我是{{name}},name是我的名字,我今年{{age}}岁";
//最终替换成"我是leaf,name是我的名字,我今年20岁"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值