我正在制作一个显示照片和文字的微型网站(一个人和这个人的引用)。
我正在与之合作的人向我发送了一批.htm文件,我将其转换为html(大约300个)
我正在使用jQuery .load()
这一切都运行正常,但在文本中插入了<br>
,在加载文本时会显示var string = $('#lightbox_text').html();
var regex = string.replace(/textoreplace/g, ' ');
$('#lightbox_text').html(regex);
。我想用正则表达式来驾驭它们。
我所做的是以下内容:
<<span class=SpellE><span class=GramE>br</span></span>><o:p></o:p</span>
问题是在.htm里面我想要乘坐的位看起来像这样:
var regex = string.replace(/<<span class=SpellE><span class=GramE>br<\/span><\/span>>/g, ' ');
我不知道如何处理这个...我试过这样做:
.product-info-title:active {
font-size: 16px;
color: #666 !important;
text-decoration: none !important;
padding: 0;
margin: 0 0 20px 0;
display: inline-block;
}
但这不起作用......不知道我应该怎么做,正则表达式让我很困惑。
答案 0 :(得分:1)
既然你正在使用jQuery,为什么不使用它暴露的东西来操纵DOM呢?
您的评论表明您将HTML作为文本表示形式。那没关系:
var htmlText = '<p>Some text</p><br><br><br><p>Some text</p>',
$htmlText = $(htmlText);
$('#output').append($htmlText);
$('#output br').remove();
console.log($('#output')[0].innerHTML);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="output"></div>
如果查看控制台输出,您将能够看到删除了<br>
元素的HTML字符串表示。
答案 1 :(得分:0)
创建一个RegExp对象,然后在string.replace()
方法中使用它。
var regex = new RegExp('<<span class=SpellE><span class=GramE>br</span></span>><o:p></o:p</span>', 'g');
var stringNoBr = string.replace(regex, '')
答案 2 :(得分:0)
这可能会这样做。有一个被替换的日志。您可以检查错误匹配并根据需要调整正则表达式。
var str = "hello<<span class=SpellE><span class=GramE>br</span></span>><o:p></o:p</span> world";
str = str.replace(/<<.*?>br<.*?>><o:p><\/o:p<\/span>/g, function(m){
console.log("replaced: " + m);
return "";
});
console.log(str);
答案 3 :(得分:0)
不是将不需要的html放在DOM中,而是将其从DOM中删除...可以使用load()
使用$.get
切换出来并在插入前删除不需要的内容
$.get(url, function(resp){
var $tmp = $('<div>').append(resp).find('br').remove();
$('#yourTaregtElementId').html( $tmp).html());
});
替代CSS解决方案:
.some-class br { display:none}
答案 4 :(得分:0)
好的,所以我发现我的解决方案使用Charlietfl建议来修改源而不是正则表达式。我已经记住了这一点,但使用sed并没有给出预期的结果,因为我无法用空格“查找”和“替换”,甚至只是删除它们。
sed -i 's/THIS/THAT/g' /path/to/files*.file_format
在我的情况下,以下确实有效:
LC_CTYPE=C sed -i 's/<<span class=SpellE><span class=GramE>br</span></span>><o:p></o:p></span>/-/g' /path/to/files*.html
但将<br>
替换为"-"
并非如此。 ""
或" "
而不是“ - ”对我来说根本不起作用。
注意:如果有人了解更多有关sed的信息,我将非常感谢您解释为什么空格不起作用。
考虑到这一点,我找到了一个替代解决方案,首先使用批处理.htm
命令行将文件从.html
转换为textutils
。
textutil -convert html ~/path/to/files/*.htm
这改变了“怪异”的一句话:
<<span class=SpellE><span class=GramE>br</span></span>><o:p></o:p></span>
到此:
<br>
这是梦想。 然后一个简单的正则表达式可以完成这项工作:
var string = $('#lightbox_text').html();
var regex = string.replace(/<br>/gi, ' ');
$('#lightbox_text').html(regex);