我有一个网站更新程序,可以将每个 p 元素转换为文本区域,用户输入内容,然后每个文本区域被转换回 p 并获取结果HTML 并将其存储在我的 SQL 数据库中。
我的问题:在 Internet Explorer 中,当我去抓回 HTML 时,它稍微改变了 html。例如:
// From this originally
<img id="headingpic"/><div id="myContent">
// To this
<img id="headingpic"/>
<div id="myContent">
这很重要,因为现在显示的 img 和下面的 div 之间有一个垂直间隙。
有时 IE 会插入一个“\n”,有时是一个“\n”,有时只是一个“\n”。我试图想出一个正则表达式来删除这些端线(和间距),无论它们的模式如何。我很难想出正则表达式,它们对我来说太神秘了。
如果我解释我的算法,你能建议在正则表达式中实现这个的“字符”吗?
- 对于每个“>”字符:如果下一个字符是“<”则忽略任何空白字符或末尾字符,然后继续
- 对于“<”后面的每个字符,如果不是==“>”,则将其删除(或将其替换为“”)
我正在尝试在 javascript 或 python 中执行此操作:
# Python: should I use replace for this? Would my regular expression look something like this?
HTML_CONTENT.replace( "^[ \t\n\r]" ) # this removes all whitespace as far as I know
最佳答案
我会用不同的方式来解决这个问题:
首先按行溢出。
html_content_list = HTML_CONTENT.split("\n"); // Split by line;
然后使用 .trim()
删除末尾的所有空格(假设我们正在谈论字符串和一行,首先测试是否为 null)
for(var i in html_content_list)
{
html_content_list[i] = html_content_list[i].trim();
}
然后如果确实需要换行,则在末尾添加它:
html_content_list.join("\n");
关于javascript - 用于删除行尾空格模式的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7641664/