正则表达式从javascript中删除字符串开头和结尾的所有<br/>标签

时间:2015-08-26 11:38:26

标签: javascript jquery regex string

我在开头和结尾都有一个包含多个br标签的字符串。但我想删除所有br标签,这些标签位于字符串的开头或字符串的结尾。

Input : <br /> <br /> <br /> 
        <br /> <br />This is <br /> Test <br /> string. <br /> <br /> <br /> 

Output should be - This is <br /> Test <br /> string. 

我试过跟随regex tp替换字符串

Input.replace(/^(<br( \/)?>)*|(<br( \/)?>)*$/, '')

但它没有用。

我已经尝试了一个单独的正则表达式,以便在结束时删除所有br。

Input.replace(/(<br \/>\s*)+$/, '')

如何从类似的正则表达式中删除br标签。或者如果我可以编写组合正则表达式。

8 个答案:

答案 0 :(得分:7)

您可以使用以下正则表达式:

/^(\s*<br( \/)?>)*|(<br( \/)?>\s*)*$/gm

参见演示https://regex101.com/r/cH7kL2/1

请注意,由于你有一个多行字符串,你需要使用m标志,这会强制你的正则表达式引擎匹配每行开头的锚点。

演示:

Input.replace(/^(\s+<br( \/)?>)*|(<br( \/)?>\s)*$/gm, '')

答案 1 :(得分:2)

如果您需要修剪(白色)空格(注意浏览器处理不同的格式,如<br>, <br/>, <br /> and <br / >,请使用:/^(\s*<br\s*\/?\s*>\s*)*|(\s*<br\s*\/?\s*>\s*)*\s*$/g。 请参阅此处示例https://regex101.com/r/ls9eoq/2

答案 2 :(得分:1)

试试这个正则表达式:

Input.replace(/^( |<br \/>)*(.*?)( |<br \/>)*$/,"$2");

这里是小提琴http://jsfiddle.net/WBfxm/68/

答案 3 :(得分:0)

试试这个

Input.replace(/^[(<br( \/)> )|(<br( \/)>)]*|[( <br( \/)>)|(<br( \/)>)]*$/g, '');

答案 4 :(得分:0)

应该是:

Input.replace(/^(\ ?<br( \/)?>\ ?)+|(\ ?<br( \/)?>\ ?)+$/, '');

修改后的代码应清除所有空格,并在字符串末尾或位于字符串末尾的<br><br />标记

这是工作示例:http://www.rubular.com/r/rHYW4DqJKT(已修改)

编辑:实际上你缺少的是将替换值提供给原始变量,如下所示:

Input = Input.replace(/^(\ ?<br( \/)?>\ ?)+|(\ ?<br( \/)?>\ ?)+$/, '');

Working example in jsfiddle

答案 5 :(得分:0)

您可以使用这样的正则表达式:

SELECT REGEXP_REPLACE('<br>Hello<br>world<br>','^(<br>)*(.*?)(<br>)*$','\\2');

样品

MariaDB [(none)]> SELECT REGEXP_REPLACE('<br>Hello<br>world<br>','^(<br>)*(.*?)(<br>)*$','\\2');
+------------------------------------------------------------------------+
| REGEXP_REPLACE('<br>Hello<br>world<br>','^(<br>)*(.*?)(<br>)*$','\\2') |
+------------------------------------------------------------------------+
| Hello<br>world                                                         |
+------------------------------------------------------------------------+
1 row in set (0.00 sec)

MariaDB [(none)]> SELECT REGEXP_REPLACE('Hello<br>world<br>','^(<br>)*(.*?)(<br>)*$','\\2');
+--------------------------------------------------------------------+
| REGEXP_REPLACE('Hello<br>world<br>','^(<br>)*(.*?)(<br>)*$','\\2') |
+--------------------------------------------------------------------+
| Hello<br>world                                                     |
+--------------------------------------------------------------------+
1 row in set (0.00 sec)

MariaDB [(none)]> SELECT REGEXP_REPLACE('<br>Hello<br>world','^(<br>)*(.*?)(<br>)*$','\\2');
+--------------------------------------------------------------------+
| REGEXP_REPLACE('<br>Hello<br>world','^(<br>)*(.*?)(<br>)*$','\\2') |
+--------------------------------------------------------------------+
| Hello<br>world                                                     |
+--------------------------------------------------------------------+
1 row in set (0.00 sec)

MariaDB [(none)]> SELECT REGEXP_REPLACE('Hello<br>world','^(<br>)*(.*?)(<br>)*$','\\2');
+----------------------------------------------------------------+
| REGEXP_REPLACE('Hello<br>world','^(<br>)*(.*?)(<br>)*$','\\2') |
+----------------------------------------------------------------+
| Hello<br>world                                                 |
+----------------------------------------------------------------+
1 row in set (0.00 sec)

MariaDB [(none)]>

答案 6 :(得分:0)

这个对我有用

this.htmlToPreview = payload.parsedHTML.replace(/<br\s*\/?>/gm, '');

答案 7 :(得分:-1)

这将替换inputValue中的每个匹配项

const regexBr = new RegExp('<br/>', 'gi');
const outputValue = inputValue.replace(regexBr, ' ');