这是我的代码:
$scope.currentTextClass = $scope.currentText1.replace(
test5 = /<img .* \/>/g,
"<div class=\"container\">" + test5.source + "</div>"
);
但是test5.source
的字符串是"<img .* \/>"
。我想要的是完整的img
标签而不是原始正则表达式。
是否可以退回原始img
代码?
答案 0 :(得分:2)
问题是正则表达式的源是<img .* \/>
。所有source
返回都是没有/
或标志的正则表达式(在这种情况下为g
)。
source属性返回一个包含regexp对象源文本的String,它不包含两侧的两个正斜杠和任何标志。
如果您想要访问完整匹配项,可以提供一个函数作为replace
调用的第二个参数。这本身有3个参数传递给它:匹配,匹配的位置和全文。
第一个参数是你想要的:
$scope.currentTextClass = $scope.currentText1.replace(
/<img .* \/>/g,
function(match) {
return "<div class=\"container\">" + match + "</div>";
}
);