代码之家  ›  专栏  ›  技术社区  ›  KitKit

替换正则表达式中的HTML字符串

  •  1
  • KitKit  · 技术社区  · 7 年前

    <div>My cat</div><div>My dog</div><div>12345</div>

    我想用Regex替换全局字符串(更改 </div><div> 进入之内 <br/> ,那么 删除所有HTML,只需保留 <br/> 只有 :

    My cat<br/>My dog<br/>12345

    var formatHTMLQuill = function (stringHTML) {
      let t = stringHTML.replace('</div><div>', '<br/>');
      let n = t.replace(/<(?!br\s*\/?)[^>]+>/g, '')
      return n
    }
    

    但这不是工作,结果是 My cat<br/>My dog</div><div>12345

    3 回复  |  直到 7 年前
        1
  •  1
  •   user2932057    7 年前

    请验证以下代码:

    var formatHTMLQuill = function (stringHTML) {
    let t = stringHTML.replace(/(<\/div><div>)/g, '<br/>');
    let n = t.replace(/(<\/div>|<div>)/g, '');
    return (n);
    }
    
    console.log(formatHTMLQuill('<div>My cat</div><div>My dog</div><div>12345</div>'));
        2
  •  1
  •   Just code    7 年前

    您可以删除 <div> 先更换 </div> 具有 <br/>

    var formatHTMLQuill = function (stringHTML) {
      let t = stringHTML.replace(/\<div>/g, '');  
      
      let n = t.replace(/\<\/div>/g, '<br/>')
      return n
    }
    
    console.log(formatHTMLQuill("<div>test</div> <div>test1</div>"))
        3
  •  1
  •   Mamun    7 年前

    可以将RegEx与全局标志一起使用 g . 这个

    var html = `<div>My cat</div><div>My dog</div><div>12345</div>`
    
    var formatHTMLQuill = function (stringHTML) {
      let t = stringHTML.replace(/<div>/ig,'')         //remove the start div
                        .replace(/<\/div>/ig, '<br/>') //replace the closing </div>
                        .replace(/(<br\/>\s*)+$/,'');  //remove the last <br/>
      return t;
    }
    
    console.log(formatHTMLQuill(html));