Maison  >  Article  >  php教程  >  正则表达式替换html元素属性的方法

正则表达式替换html元素属性的方法

高洛峰
高洛峰original
2016-12-05 10:18:131439parcourir

正则表达式替换任意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中文网。

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn