0
是否可以使用正則表達式和jQuery返回有條件的輸出,我想換成方括號的圖片環繞數字:jQuery的條件的正則表達式返回輸出
[1]
將成爲<span><img src="1.png"></span>
在那裏我有[11]
它會取代它成爲
<span><img src="1.png"><img src="1.png"></span>
在那裏我有[1e1]
它會取代它成爲
<span><img src="1.png"><img src="e.png"><img src="1.png"></span>
但是如果只是文字將保留原樣無論長短
[qu]
將成爲<span><img src="qu.png"></span>
這是我的代碼至今:
$('p').each(function() {
var txt = $(this).text();
var html = txt.replace(/\[(.*?)\]/g, function($1){
if($1.length<=3) {
return $1.replace(/\[(.*?)\]/g,'<span class=\'rehMark\'><img src="img/$1.png" alt="$1" /></span>')
}else{
// this is the bit I would like help with!
// and how to deal with text rather than numbers
return '<span class=\'lngRehMark\'>'
for (i=0; i<$1.length; i++)
{
return '<img src="img/' + $1 + '.png" alt="' + $1.length + '" /></span>'
}
return '</span'>'
}
});
$(this).html(html);
});
我有括號內的信息e.g的多個實例「[4] [5] OK」 - 這將替換第一個和最後支架之間的一切,有沒有什麼辦法來修改它做的每一個實例? – Spufferoo 2013-03-04 14:16:38
當然,我已經修復了代碼。只需將「(。*)」替換爲「([^]] *)」(匹配任何字符與匹配除''之外的任何字符])。 – 2013-03-04 14:23:09
我已經改變了代碼,因爲你已經取得了 - 它現在只匹配有數字和文本值[1]被忽略但[1e]被改變,將會有三個[1],[dq], [3eq],[q3]將全部爲有效文本,由每個字符的圖像替換。謝謝 – Spufferoo 2013-03-04 14:48:02