javascript - js正则表达式中replace的$0,$1是什么?
PHPz
PHPz 2017-04-11 11:07:19
[JavaScript讨论组]

各位大神,小弟在看正则中replace,始终不得其解,不知道
1.如何使用
2.使用场景
3.$0...9分别指的什么?

谢谢

PHPz
PHPz

学习是最好的投资!

全部回复(3)
PHP中文网

str.replace(reg,function(){}) 应用的地方很多啊,最基本的就是 比如str 是一串数字,比如你要把这些数字替换成 大写的汉字

var ary=["一","二","三","四","五","六"]
"123456".replace(/\d/g,function(){

`return ary[argument[0]];`

})

还有一种用法就是 不替换 字符串,只是利用replace 可以 匹配几次,这个function 就执行几次的特性。来做一些事情,比如格式化时间字符串。等等。
$1--$9 是RegExp 自带的,只要放生了匹配就会有。 test exec str的replace 都会有。代表的是 分组,即小括号里面的小正则 捕获到的内容。
/^(\d{4})[\/-](\d{1,2})[\/-](\d{1,2})$/
比如这个 简单的匹配 年月日的正则,
我们就可以通过 $1 $2 $3 获取到并进行处理。

伊谢尔伦

第1、使用就是字符串.replace();
例如 `
var str = 'this is tom';
var strReg = str.replace(/tom/g,'jack');
console.log(strReg);//this is jack意思就是在字符串str中全局搜索tom这个字符,并将他换成jack`;
第2、使用场景这个应该没有什么吧,想用的话你可以到处用只要你喜欢,或者不会带来其他问题的话,应该没有什么限制的。
第3、那个$0,$1....$9是表示正则匹配的组。

var str = '123-mm';
var strReg = str.replace(/(\d+)-([A-Za-z]+)/g,'$2');
console.log(strReg)//mm  上面那段$2这个就是表示正则第二组个匹配到的内容
PHPz

每一个括号是一个分组 $0-$9代表的分组

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号