我在开头和结尾都有一个包含多个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标签。或者如果我可以编写组合正则表达式。
答案 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");
答案 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( \/)?>\ ?)+$/, '');
答案 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, ' ');