![](/img/trans.png)
[英]How to parse a simple arithmetic operation with regex in javascript?
[英]arithmetic operation on regex group javascript
相當簡單的問題:是否有辦法在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)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.