【问题标题】:How to create match in regex?如何在正则表达式中创建匹配?
【发布时间】:2017-06-30 20:03:07
【问题描述】:

这是我的字符串。

eewer <br> <br/> <div> ss</div> <img src=".."> dffdfdf df df sdf

我需要删除所有标签并将br替换为\n

例子:

之前

eewer &lt;br&gt; &lt;br/&gt; &lt;div&gt; ss&lt;/div&gt; &lt;img src=".."&gt; dffdfdf df df sdf

之后

eewer \n \n ss dffdfdf df df sdf

【问题讨论】:

  • 故事的继续stackoverflow.com/questions/42191910/… 对吧?
  • 这个字符串是否在另一个 HTML 元素中(比如 &lt;div&gt;)?
  • @RomanPerekhrest 这是另一个
  • 这个字符串&lt;div&gt;eewer &lt;br&gt; &lt;br/&gt; &lt;div&gt; ss&lt;/div&gt;some text&lt;/div&gt; &lt;img src=".."&gt; dffdfdf df df sdf怎么样?
  • @RomanPerekhrest 删除所有标签并替换为 \n

标签: javascript regex regular-language


【解决方案1】:

如果你想保留\n:

var str = 'eewer <br> <br/> <div> ss</div> <img src=".."> dffdfdf df df sdf';

console.log(str.replace(/(<br>|<br\/>)/g, '\\n').replace(/<[^>]*>/g, ''));

如果你想用换行符代替\n

var str = 'eewer <br> <br/> <div> ss</div> <img src=".."> dffdfdf df df sdf';

console.log(str.replace(/(<br>|<br\/>)/g, '\n').replace(/<[^>]*>/g, ''));

【讨论】:

  • @Andiskiy 你满意吗?
  • 为什么\\n 只是\n
  • @ibrahimmahrir OP 希望将其保留为 '\n' 而不仅仅是换行符。再次检查他的问题。
  • @Andiskiy 没有两个 .replace() 函数很容易,只要将两种情况更改为同一个元素,但第一种情况是\n,第二种情况是''。可以(可能)使用 ibrahim 提到的回调来完成,但它会使您的代码复杂化,并且会比现在更多的代码。
  • @Andiskiy 我和 KindUser 在一起。两个replace 电话最好把事情分开!
【解决方案2】:

首先将所有 BR 标签替换为:

 /<br\s?\/?>/g

并删除其他人:

 /<.*?\n?.*?>/g

或者,如果您的标签可能很复杂且多行(3 行或更多):

 /<(.*?\n?){0,}.*?>/g
 /<[^>]*>/g   //is faster as @Zze suggested

所以:

 yourString.replace( /<br\s\/?>/g , '\n' ).replace( /<.*?\n?.*?>/g ,'') ;

注意:替换:

 <br> <br/> <br /> and <br >

【讨论】:

  • 非常感谢
  • 不能做一个正则表达式?
  • 我们将 BR 标签替换为 \n,而其他标签替换为 ''。 () 捕获现有文本。
【解决方案3】:

我将它分成 2 个替换语句,但是在正则表达式方面比我更好的人可能会优化它..

/(&lt;br[\/]*&gt;)/g 捕获您的 html 换行符。

/&lt;[^&gt;]*&gt;/g 捕获所有其他 html 标记及其内容。

var string = 'eewer <br> <br/> <div> ss</div> <img src=".."> dffdfdf df df sdf';

console.log(string);
var newString = string.replace(/(<br[\/]*>)/g, "\n");
newString = newString.replace(/<[^>]*>/g, "");
console.log(newString);                              

如果您希望改进您​​的正则表达式,http://regexr.com 是一个很棒的网站,其中包含许多可供免费使用的社区示例/备忘单。

【讨论】:

    猜你喜欢
    • 2015-03-24
    • 2011-08-26
    • 1970-01-01
    • 2016-10-14
    • 2018-10-05
    • 2012-02-28
    相关资源
    最近更新 更多