簡體   English   中英

正則表達式組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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM