正则表达式中的encodeURIComponent

时间:2012-11-09 10:26:19

标签: javascript jquery regex replace encode

我有更多像这样的DIV:

<span class="date">Fri November 9, 2012</span>

所有这些都属于var。 例如:

var = '
...<span class="date">Fri November 9, 2012</span>...
...<span class="date">Fri November 9, 2012</span>...
';

我尝试用包含此日期的图片替换每个日期。

我有这条线,但这不起作用:

ver = ver.replace(/<span class="date">(.*)<\/span>/g,'<span class="date"><img src="generateLink.php?nr='+encodeURIComponent($1)+'" /></span>');

我的问题是:我不能在正则表达式中使用 encodeURIComponent

1 个答案:

答案 0 :(得分:4)

使用replace with callback function

ver = ver.replace(/<span class="date">([^<]*)<\/span>/g,
function($0,$1) {
   return '<span class="date"><img src="generateLink.php?nr='+encodeURIComponent($1)+'"   /></span>'
});

可以更简单

ver = ver.replace(/(<span class="date">)([^<]*)(<\/span>)/g,
function($0,$1,$2,$3) {
    return  $1+'<img src="generateLink.php?nr='+encodeURIComponent($2)+'" />'+$3
});