【发布时间】:2021-06-01 15:10:38
【问题描述】:
我正在处理 JavaScript 中的 contenteditable innerHTML 字符串,并尝试删除成对
<div><br></div>
当用户按 Enter 换行时出现。
示例字符串:(将是动态的)
<div><br></div><div><br></div><div><br></div>Example <br> String d<<div><br></div><div><br></div><div><br></div></div>
这样我可以得到
Example <br> String d<
我也通过搜索 Stack Overflow 尝试了我的正则表达式:
let final_text = document.getElementById('chat_room_input_box').innerHTML.trim();
final_text = final_text.replace(/^\s*(?:<br\s*\/?\s*>)+|(?:<br\s*\/?\s*>)+\s*$/gi, '');
final_text = final_text.replace(/^(?: |\s)+|(?: |\s)+$/ig,'');
final_text = final_text.replace(/^\s*(?:<div\s*\/?\s*>)+|(?:<div\s*\/?\s*>)+\s*$/gi, '');
我可以在开始/结束时删除<br> 或&nbsp;,但无法删除<div><br></div>
【问题讨论】:
-
这听起来像是一个可能的XY problem;一个问题可能比你要求的更好地解决。一般来说,强烈不鼓励使用 RegEx 解析 HTML,除非您确切知道 HTML 在所有情况下的样子(即使那样它仍然很冒险)。
标签: javascript html regex