扫码关注官方订阅号
84669人学习
65727人学习
82984人学习
467778人学习
498837人学习
471966人学习
256484人学习
152542人学习
224170人学习
139536人学习
81804人学习
85022人学习
11944人学习
20001人学习
60816人学习
5487人学习
15007人学习
2150人学习
6980人学习
194925人学习
359900人学习
1142人学习
19058人学习
3206人学习
180550人学习
48569人学习
17603人学习
40936人学习
1049人学习
750人学习
32909人学习
1.关于正则表达式里的$#$的意思
replace(".", "$#$").replace(/\./g, "").replace("$#$", ".").replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'))
2.上面这句正则表达的意思是什么
闭关修行中......
replace第一个参数为一个字符串时, 它其实做的是文本替换, 所以这里的'$#$'和正则表达式无关, 所以第一次replace只是把字符.替换成'$#$', 看到后面的代码(第三次replace)又把它转换回来, 可以推测目的只是为了把'.'转换成一个比较特殊的字符防止被第二个正则替换给替换掉
replace
试着解读一下:
someText .replace(".", "$#$") //1. 把字符'.'替换成'$#$', 因为replace对于字符串只匹配一次, 所以只会替换第一个'.' .replace(/\./g, "") //2. 把其余的字符'.'替换为空字符串(删除) .replace("$#$", ".") //3. 把字符'$#$'替换回原来的'.' .replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3')) /* 4. ^ : 字符串开始; (\-) : 第一组匹配, 匹配1个'-'; * : 重复匹配`-` 0-n个, 但不进入分组 (\d+) : 第二组匹配, 匹配1-n个数字; \. : 随后匹配一个'.'; (\d\d) : 第三组匹配, 一个两位的数字; .*$ : 后面匹配任意字符0-n个, 直到字符串结束. 替换的目标是: '(第一组匹配)(第二组匹配).(第三组匹配)' */
不知道是不是这个意思。。
'---12.3...4.56..78.90'.replace(/^(-)*(\d+\.)[^\d]*(\d)[^\d]*(\d).*/, '$1$2$3$4')
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2024 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号
精品班
技术支持
技术咨询
学习群
会员优惠
返回顶部
replace
第一个参数为一个字符串时, 它其实做的是文本替换, 所以这里的'$#$'和正则表达式无关, 所以第一次replace
只是把字符.替换成'$#$', 看到后面的代码(第三次replace
)又把它转换回来, 可以推测目的只是为了把'.'转换成一个比较特殊的字符防止被第二个正则替换给替换掉试着解读一下:
不知道是不是这个意思。。