js正则表达式中的小括号()

js正则表达式中的小括号(),其貌不扬。是个啥作用呢?

我们来个简单的匹配下字符串'abc'

var str = 'abc';
var reg = /[\w][\w][\w]/g;

reg.test(str);//true

此时,如果有个要求,将 'abc' 替换成 ‘bca’,咋整呢?

()括号的作用就显现出来了,它可以在正则表达式中精确筛选出想要的部分。

例子一

将字符串 'abc' 替换成 ‘bca’

var str = 'abc';
var reg = /([\w])([\w])([\w])/g;
console.log(str.replace(reg,'$2$3$1'));//'bca'

没错,这里replace第二个参数中的 $1 $2 $3 匹配到的正是 reg 中三个小括号对应的内容。reg用小括号括几个,在replace第二个参数就能对应获得几个。是不是很方便啊

例子二

匹配出‘aabb’的形式(就是在重复的两字母 ‘aabbccddeeff’ 等等什么的中找到 aabbccddeeff 筛选出重复两对做一组)

var str = 'aaccffddkkmmzz';
var reg = /([\w])\1([\w])\2/g;
console.log(str.match(reg)); //['aacc', 'ffdd', 'kkmm']

在正则表达式中 \1代表第一个括号中的内容,\2代表第二个括号中的内容。

例子三

将字符串 'java-script-is-not-simple' 替换成 'javaScriptIsNotSimple' (驼峰式)。

var str = 'java-script-is-not-simple';
var reg = /-([\w])/g;
var newStr = str.replace(reg,function($,$1){
	return $1.toUpperCase();
})
console.log(newStr); //javaScriptIsNotSimple

replace 的第二个参数可以是一个匿名函数。这个匿名函数的参数很有意思。第一个参数是匹配到的整体,第二个参数是我们今天的主角就是正则表达式对应括号里面的内容。如果正则表达式有两括号,那么匿名函数的参数可以对应多几个。

总结

在正则表达式中使用括号,目的是为了匹配到结果之后方便找到对应的匹配结果。1.在正则表达式本身中用 \1,\2,\3... ...的形式找到。2.在replace第二个参数中用 '$1 $2 $3'的形式找到。3.当replace函数的第二个参数是匿名函数的时候,从这个匿名函数的第二参数开始找到。

在此顺嘴提一句replace

replace的第二个参数是匿名函数的时候,这个函数参数的含义是function(‘正则匹配到的所有’,第一个括号,第二个括号,第三个括号等等, 每次括号匹配到的位置){ }具体内容在此就不过多赘述。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值