javascript - js正则匹配字符串制定位置?
巴扎黑
巴扎黑 2017-04-11 12:43:59
[JavaScript讨论组]

比兔'sdfdsfds4443sd',正则匹配后三位把后三位换成'*',该怎么做?

巴扎黑
巴扎黑

全部回复(5)
阿神
// 匹配后 n 位
'dsgsdghdfghfdghndx'.replace(/.{3}$/, '哈哈')

// 匹配前 n 位
'dsgsdghdfghfdghndx'.replace(/^.{3}/, '哈哈')
迷茫
> 'sdfdsfds4443sd'.replace(/(.*).../,'$1***')
'sdfdsfds444***'
高洛峰

如果只是想把后三位替换成'*':

str.slice(0, str.length - 3) + '***'

想获得后几位直接去截就可以了。

高洛峰
"sdfdsfds4443sd".replace(/\w{3}$/gi,"***");

正则做这事儿也是典型的大炮打蚊子;直接使用字符串操作

"sdfdsfds4443sd".slice(0,-3) + "***";
高洛峰
"abcde".replace(/...$/, '***')
// 或
"abcde".replace(/.{0,3}$/, _=> _.replace(/./g, '*'))

建议改用substr: 这问题简单到不适合正则,而且在没写好的正则引擎上可能引起性能问题甚至ddos。

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

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