正则中的圆括号()的⽤途详解
⾸先我们前⾯介绍过,replace()⽅法中的第⼆个参数若是回调函数,那么这个回调函数中的参数就是匹配成功后的结果。。。。。,那么有没有考虑回调函数中有多个参数呢?
先举个例⼦:
<!DOCTYPE>
<html>
<head>
<meta charset='utf-8'>
<title></title>
</head>
<script type="text/javascript">
var date='2015-8-7';
var re=/(\d+)(-)/g;
/*alert(a1);*/
alert(a2);
/*alert(a3);*/
});
};
</script>
<body>
</body>
</html>
上⾯的例⼦需要你分别查看a1,a2,a3的值,你会发现⼀些规律
单独查看a1:2015- 8-
单独查看a2:2015 8
单独查看a3:- -
把三个参数形象的打个⽐⽅吧,a1相当于母亲,a2是⼤⼉⼦,a3是⼩⼉⼦,每个⼉⼦都继承了妈妈的⼀部分基因
a1是var re=/\d+-/g; 这个正则的结果
a2是var re=/(\d+)(-)/g;左边第⼀个括号的结果
a2是var re=/(\d+)(-)/g;左边第⼆个括号的结果
说了这么多参数的⽤途,下⾯我们来实现输出:2015.8.7
⽅法⼀:对⼉⼦操作
<!DOCTYPE>
<html>
<head>
<meta charset='utf-8'>
<title></title>
</head>
<script type="text/javascript">
var date='2015-8-7';
var re=/(\d+)(-)/g;
var place(re,function(a1,a2,a3){
return a2+'.';
});
alert(a);
};
</script>
<body>
</body>
</html>
⽅法⼆:对母亲操作
<!DOCTYPE>
<html>
<head>
<meta charset='utf-8'>
<title></title>
</head>
<script type="text/javascript">
var date='2015-8-7';
var re=/(\d+)(-)/g;
var place(re,function(a1,a2,a3){
return a1.substring(0,a1.length-1)+'.';
});
alert(a);
};
</script>
<body>
</body>
</html>
学了正则中的replace()⽅法的回调函的多个参数与括号之间的关系,瞬间觉得正则复杂了起来。。。。
正则表达式中⽅括号[]与圆括号()的区别是什么?
最基本的意思:⼩括号就是括号内看成⼀个整体 ,中括号就是匹配括号内的其中⼀个,⼤括号就是匹配⼏次
但是括号⾥变加上其他字符就有不同意思详细介绍例如:
{n}
n是⼀个⾮负整数.匹配确定的n次.例如,“o{2}”不能匹配“Bob”中的“o”,但是能匹配“food”中的两个o.
{n,}
n是⼀个⾮负整数.⾄少匹配n次.例如,“o{2,}”不能匹配“Bob”中的“o”,但能匹配“foooood”中的所有o.“o{1,}”等价于“o+”.“o{0,}”则等价于“o*”.
{n,m}
m和n均为⾮负整数,其中n
[] ⽆意义,⼀般⽤作匹配⼀个集合
⽐如
[0-9] :查任何从 0 ⾄ 9 的数字.
正则匹配尖括号[a-Z] :查任何从⼩写 a 到⼤写 Z 的字符.
()也是匹配⼀个集合,但它还可以⽤作反向引⽤.
以上所述就是本⽂的全部内容了,希望⼤家能够喜欢。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论