gpt4 book ai didi

javascript - 正则表达式仅在不是属性值时才替换字符串

转载 作者:行者123 更新时间:2023-11-29 10:22:31 26 4
gpt4 key购买 nike

我需要替换 JavaScript 字符串中的价格,但前提是它不是属性值。结果应如下所示:

'<span title="$30,000,000.50">$30,000,000.50</span>' // original
'<span title="$30,000,000.50">xxx</span>' // desired result

'bla bla bla $30,000,000.50 bla bla bla' // original
'bla bla bla xxx bla bla bla' // desired result

我将价格定义为美元符号,后跟数字、点和逗号的组合:

/\$[\d,.]+/

这很好用。但是当我试图排除这种模式被引号括起来的情况时,它开始表现得很有趣:

'<span title="$30,000,000.50">$30,000,000.50</span>'.replace(/(?!=\")(\$[\d,.]+)(?!\")/gi, 'xxx');
// <span title="xxx0">xxx</span>

请注意,它替换了 title 属性的值,但保留了最后一个零。

能否请您更正我的代码并告诉我哪里做错了?谢谢。

最佳答案

Javascript有强大的功能,可以用函数来做替换,用起来:

'<a title="$30">$30</a>'.replace(/\$[^<>]*?(<|$)/g,function($0){return $0.replace("$","")})

关于javascript - 正则表达式仅在不是属性值时才替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8708614/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com