如何在正则表达式中创建匹配项?

How to create match in regex?

这是我的字符串。

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

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

示例:

之前

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

之后

eewer \n \n ss dffdfdf df df sdf

如果你想保留\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, ''));

如果你想 break-lines 而不是 \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, ''));

首先将所有 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 >

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

/(<br[\/]*>)/g 捕获您的 html 换行符。

/<[^>]*>/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 是一个了不起的网站,其中有许多社区示例/备忘单可供免费使用。