扫码关注官方订阅号
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扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
replace第一个参数为一个字符串时, 它其实做的是文本替换, 所以这里的'$#$'和正则表达式无关, 所以第一次replace只是把字符.替换成'$#$', 看到后面的代码(第三次replace)又把它转换回来, 可以推测目的只是为了把'.'转换成一个比较特殊的字符防止被第二个正则替换给替换掉试着解读一下:
不知道是不是这个意思。。