Home  >  Article  >  php教程  >  How to replace html element attributes with regular expressions

How to replace html element attributes with regular expressions

高洛峰
高洛峰Original
2016-12-05 10:18:131438browse

正则表达式替换任意html元素任意属性,或增加任意属性。

/**
 * 替换html中任意tag内任意attr值
 * @param src_str
 * @param tag
 * @param attr
 * @param val
 * @returns {*}
 */
replace_html_tag_attr: function(src_str, tag, attr, val) {
  if(typeof src_str === 'undefined' || typeof tag === 'undefined' || typeof attr === 'undefined' || typeof val === 'undefined') {
    return '';
  }
 
  var reg = new RegExp(&#39;<&#39; + tag + &#39;[^>]*(&#39; + attr + &#39;=[\&#39;\"](\\w*%?)[\&#39;\"])?[^>]*>&#39;, &#39;gi&#39;);
  return src_str.replace(reg, function (match) {
    if(match.indexOf(attr) > 0) {
      //包含attr属性,替换attr
      var sub_reg = new RegExp(attr + &#39;=[\&#39;\"](\\w*%?)[\&#39;\"]&#39;, &#39;gi&#39;);
      return match.replace(sub_reg, attr +&#39;=&#39; + val);
    }else{
      //不包含attr属性,添加attr
      return match.substr(0, tag.length + 1) + &#39; &#39; + attr + &#39;=&#39; + val + &#39; &#39; + match.substr(tag.length + 2, match.length);
    }
  });
}

以上这篇正则表达式替换html元素属性的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持php中文网。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn