简体   繁体   English

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

[英]Add html attribute to string with javascript replace (regexp)

i need to add a ng-click attribute to a IMG tag present in a string, using String.replace. 我需要使用String.replace将ng-click属性添加到字符串中存在的IMG标签。

Example: 例:

<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>

Needs to be converted to: 需要转换为:

<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>

Any suggestion? 有什么建议吗?

I tried with this but no luck :( 我尝试了这个但没有运气:(

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

Try this: 尝试这个:

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

The regex only uses 2 capture groups. 正则表达式仅使用2个捕获组。

Although I doubt that regex is the ideal way to add attributes to a tag. 尽管我怀疑正则表达式是向标签添加属性的理想方法。
For example . 例如

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM