var str = "中国军队和阿扁一起办证";
var pattern = /国军|阿扁|办证/g;
/*这里的$0是啥意思啊?我看了最新的mdn文档里面好像没有这个$0,只有参数p1,p2,match...,但是好像又能使用*/
str.replace(pattern,function($0){
console.log($0)
});
var str = "中国军队和阿扁一起办证";
var pattern = /国军|阿扁|办证/g;
/*这里的$0是啥意思啊?我看了最新的mdn文档里面好像没有这个$0,只有参数p1,p2,match...,但是好像又能使用*/
str.replace(pattern,function($0){
console.log($0)
});
这里是正则的知识,function 里面可以传$0-$99,那个$0,$1....$99是表示正则匹配的组。
比如:
var str = '123-mm';
var strReg = str.replace(/(d+)-([A-Za-z]+)/g,'$2');
console.log(strReg)//mm 上面那段$2这个就是表示正则第二组个匹配到的内容
正则中每一个()代表一个分组。
这个$0与正则的分组没有关系, 只是一个参数名而已, 这个参数名只是长得像正则的分组. 下边这段代码和你的完全一样
var str = "中国军队和阿扁一起办证";
var pattern = /国军|阿扁|办证/g;
/*这里的$0是啥意思啊?我看了最新的mdn文档里面好像没有这个$0,只有参数p1,p2,match...,但是好像又能使用*/
str.replace(pattern,function(param){
console.log(param)
});
replace第二个参数如果是函数,那这个$0就是一个形参而已
如果是个字符串,那么就是匹配到的组,且从$1开始
'a,b'.replace(/(\w),(\w)/,'$2,$1') //"b,a"
13 回答13.1k 阅读
7 回答2.3k 阅读
3 回答1.4k 阅读✓ 已解决
6 回答1.5k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
6 回答1.2k 阅读
$0 没什么特别含义,$0是一个合法的变量名,你换成 a, b, c, d 什么的都可以。