使用javascript replace(regexp)将html属性添加到字符串

时间:2016-07-12 08:53:10

标签: javascript regex

我需要使用String.replace为字符串中的IMG标记添加 ng-click 属性。

示例:

<p>Test1</p>
<p>
  <img class="fr-dib fr-draggable" src="http://admin.fsn.dev/uploads/a4cafaf13aabb97b041a50ae55c7bb6d331a7cc4.jpg">
  Foto1
</p>
<p>
  <img class="fr-dib fr-draggable" src="http://admin.fsn.dev/uploads/c5a7fc84d8f552d208e5ee0e0cbcecc0d547b441.jpg" style="width: 300px;">
</p>

需要转换为:

<p>Test1</p>
<p>
  <img class="fr-dib fr-draggable" src="http://admin.fsn.dev/uploads/a4cafaf13aabb97b041a50ae55c7bb6d331a7cc4.jpg" ng-click="openModal('http://admin.fsn.dev/uploads/a4cafaf13aabb97b041a50ae55c7bb6d331a7cc4.jpg')">
  Foto1
</p>
<p>
  <img class="fr-dib fr-draggable" src="http://admin.fsn.dev/uploads/c5a7fc84d8f552d208e5ee0e0cbcecc0d547b441.jpg" ng-click="openModal('http://admin.fsn.dev/uploads/c5a7fc84d8f552d208e5ee0e0cbcecc0d547b441.jpg')" style="width: 300px;">
</p>

有什么建议吗?

我试过这个但没有运气:(

data = data.replace(/<img(.*)src="(.*)"(.*)>/ig,'<img $1 src="$2" ng-click="openModal(\'$2\')" $3')

1 个答案:

答案 0 :(得分:0)

试试这个:

data.replace(/(<img.*src="([^"]*)"[^>]*)>/ig,'$1 ng-click=\"openModal(\'$2\')\">');

正则表达式只使用2个捕获组。

虽然我怀疑正则表达式是向标签添加属性的理想方式 对于example