首先我们前面介绍过,replace()方法中的第二个参数若是回调函数,那么这个回调函数中的参数就是匹配成功后的结果。。。。。,那么有没有考虑回调函数中有多个参数呢?
先举个例子:
<!DOCTYPE>
<html>
<head>
<meta charset='utf-8'>
<title></title>
</head>
<script type="text/javascript">
window.onload=function(){
var date='2015-8-7';
var re=/(\d+)(-)/g;
date.replace(re,function(a1,a2,a3){
/*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">
window.onload=function(){
var date='2015-8-7';
var re=/(\d+)(-)/g;
var a=date.replace(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">
window.onload=function(){
var date='2015-8-7';
var re=/(\d+)(-)/g;
var a=date.replace(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 的字符.
()也是匹配一个集合,但它还可以用作反向引用.
以上所述就是本文的全部内容了,希望大家能够喜欢。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。