让前端飞JavaScript正则表达式

JavaScript正则表达式——分组

2018-08-01  本文已影响10人  椰果粒

可以将正则表达式用()分组
():可以记录你匹配到的内容
\1:表示反向引用,引用第一个子表达式的内容
\2:表示第二个子表达式的内容了
\1\2\3等用在正则表达式中
$0:整个str
$1:匹配到的第一个子表达式内容
$2:匹配到的第二个子表达式的内容
$0$1$2用在replace的第二个参数中

举个🌰

// ()可以记住你已经匹配到的东西,\1表示重复第一个分组里的内容,也就是aa形式的
var reg = /(\w)\1/g;     // ["aa", "bb", "cc", "dd", "dd"]
// 表示相同的匹配2次,也就是一共3次
var reg = /(\w)\1\1/g;    // ["ddd"]
// 相同字母出现次数大于等于2次的
var reg = /(\w)\1+/g;   // ["aa", "bb", "cc", "ddddd"]
// aabb样式的 
var reg = /(\w)\1(\w)\2/g;  //  ["aabb", "ccdd"]
var str = "aabbccdddddef";    
console.log(str.match(reg)); 
"123-mm".replace(/(\d+)-([A-Za-z]+)/g,"$2")   // "mm"
"123-mm".replace(/(\d+)-([A-Za-z]+)/g,"$1")   // "123"
$1-$9分组
这里的(\d+)表示第一个分组,对应$1
([a-zA-Z]+)表示第二个分组,对应$2

3. 反向引用
正则中的()表示一个分组,\1表示引用第一个分组一次,也就是和第一个分组内容相同才匹配

image.png
上一篇下一篇

猜你喜欢

热点阅读