簡體   English   中英

如何編寫以下內容作為正則表達式來替換多個事件?

[英]How do I write the following as a regular expression to replace multiple occurances?

背景:

我有大約10個圖像標簽的html字符串,這些標簽在運行時作為字符串傳遞給一些JavaScript,然后再注入包含元素。 每個圖像的data-thumb標簽略有不正確,在將其放入DOM之前需要進行更改。 這是一個例子:

<img src="foo_lg_db.jpg" data-large="foo_lg_db.jpg" />
<img src="bar_lg_db.jpg" data-large="bar_lg_db.jpg" />
<img src="fizz_lg_db.jpg" data-large="fizz_lg_db.jpg" />

需要成為:

<img src="foo_tn_db.jpg" data-large="foo_lg_db.jpg" />
<img src="bar_tn_db.jpg" data-large="bar_lg_db.jpg" />
<img src="fizz_tn_db.jpg" data-large="fizz_lg_db.jpg" />

題:

在JavaScript中(jQuery可以),如何實現此搜索和替換?

答案:

多虧了Mark的回答,我才知道可以在jQuery對象到達DOM之前實例化它,因此,除了使用regex ,我還做了類似的事情:

var stringHtml = "<img . . .";
var div = $("<div>").html(stringHtml );
$.each(div.find('img[src]'), function () {
    $(this).attr('src', $(this).attr('src').replace('_lg', ''));
});

return div.html();
$('img[data-thumb]').each(function() {
    $(this).attr('data-thumb', $(this).attr('data-thumb').replace('_lg_','_tn_'));
});

jQuery中類似的東西。

聽起來像是一個問題,但是您應該盡可能修復服務器端。


如果給jQuery一個HTML元素,例如$('<div>') ,它將為您創建HTML元素,然后您可以在將其插入DOM之前對其進行操作。 我不知道它是否可以處理多個元素,但是您可以先創建一個容器(如上),然后像這樣設置內容

$('<div>').html(yourHtml).find('img[data-thumb'])./* code above */

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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