gpt4 book ai didi

javascript - 正则表达式组 javascript 上的算术运算

转载 作者:行者123 更新时间:2023-12-02 14:08:30 25 4
gpt4 key购买 nike

相当直接的问题:有没有办法在 JS 中的正则表达式中对匹配组执行算术运算。

例如:我有字符串:

<img style="top:200">

我想用除以 5 来替换 200 或任何数字,在本例中为 40。所以输出:

<img style="top:40">

我尝试过:

var d= c.replace(/top:([-]?\d*[\.]?\d*)/,'int:'+parseInt($1/5)+'px')

但我明白了

<img style="top:NaNpx">

最佳答案

您可以使用 String#replace 的回调函数方法。

var c = '<img style="top:40">';

var d = c.replace(/top:([-]?\d*[\.]?\d*)/, function(m, m1) {
return 'top:' + m1 / 5 + 'px';
});

console.log(d);

<小时/>

仅供引用:但是使用正则表达式来解析 HTML 是一个坏主意。

<小时/>

另一种方法 DOMParser其中仅对样式属性值应用替换方法,而不是应用于整个字符串。

var c = '<img style="top:200">';

var parser = new DOMParser();

var img = parser.parseFromString(c, "text/html")
.querySelector('img');

img.setAttribute('style', img.getAttribute('style').replace(/\btop:([-]?\d*(\.\d+)?)/, function(m, m1) {
return 'top:' + m1 / 5 + 'px';
}))


console.log(img.outerHTML)

关于javascript - 正则表达式组 javascript 上的算术运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39844936/

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