Javascript 将pre转换为div
您将如何着手改变这一点:Javascript 将pre转换为div,javascript,jquery,html,regex,pre,Javascript,Jquery,Html,Regex,Pre,您将如何着手改变这一点: <pre> key 1 value 1 key 2 value 2 value 2.2 key 3 value 3 value 3.1 value 3.2 value 3.3 key 4 value4.1 value4.5 </pre> 键1值1 键2值2 价值2.2 键3值3 价值3.1 价值3.2 价值3.3 键4值4.1值4.5 为此: var txt = $('pre').text(); txt = txt.replace
<pre>
key 1 value 1
key 2 value 2
value 2.2
key 3 value 3
value 3.1
value 3.2
value 3.3
key 4 value4.1 value4.5
</pre>
键1值1
键2值2
价值2.2
键3值3
价值3.1
价值3.2
价值3.3
键4值4.1值4.5
为此:
var txt = $('pre').text();
txt = txt.replace(/(\r\n|\n|\r)/gm, "</pre></div><div><pre>");
$('div#test').append(txt);
键1值1
键2值2
价值2.2
键3值3
价值3.1
价值3.2
价值3.3
键4值4.1值4.5
即:将连续空行*s*(可能包含空格/制表符和多个换行符)重新放置到
我试过:
var txt=$('pre').text();
txt=txt.replace(/(\r\n |\n |\r)/gm,“”);
$('div#test').append(txt);
部分工作:每一行都改变了,我松开了我的积木
断线是否作为\r\n库存\N(所有操作系统?所有浏览器?)什么样的正则表达式可以做到这一点?
你有没有其他办法建议我继续
标记将每行包装起来
标记将每行包装起来$('pre').text($.trim($(this).text()).wrap(“”);
您可以使用函数
$('pre').text($.trim($(this.text()).wrap(“”);
这对我来说是个好办法。它可能更好:
$(文档).ready(函数(){
变量行=$('pre').html().split(/\n\s*\n/);
$('pre').remove();
对于(i=0;i0){
var-preDiv=$('');
var keyDiv=$('');
preDiv.append(keyDiv);
html(第[i]行);
$('body')。追加(preDiv);
}
}
});
它不处理任何空白。您可以使用行
keyDiv.html(“key”+$.trim(lines[i]))中的trim()删除它。
这样做对我来说更好:
$(文档).ready(函数(){
变量行=$('pre').html().split(/\n\s*\n/);
$('pre').remove();
对于(i=0;i0){
var-preDiv=$('');
var keyDiv=$('');
preDiv.append(keyDiv);
html(第[i]行);
$('body')。追加(preDiv);
}
}
});
它不处理任何空白。您可以使用行
keyDiv.html(“key”+$.trim(行[i])中的trim()删除它
您要转换为的HTML无效。键1值1不正确。已修复。2 ups?有些人非常纯粹:|您要转换为的HTML无效。键1值1不正确。已修复。2 ups?有些人非常纯粹:|这并不能实现他想要做的。这不会实现他想要的。他想包装每个part使用
而不仅仅是整个东西。这会用div来包装每个
?你还想做什么?这不会达到他想要做的。那不会做他想要做的。他想用
来包装每个部分,而不仅仅是整个东西。这会用div来包装每个
。你还想做什么“密钥1值1”只是样本数据。它可能是任何东西(不一致)。除非空行是空的(没有空格),否则它是无效的。参见目前为止最好的答案。“密钥1值1”只是样本数据。它可能是任何东西(不一致)。除非空行为空,否则它不起作用。(无空格),请参阅。不过是目前为止最好的答案。@Kraz:不,我的算法与您尝试的算法不同。您实际上是在用HTML标记替换空格,而我的算法会使实现更干净。我现在没有时间为您实现它。抱歉。@Kraz:不,我的算法与您尝试的算法不同。您实际上是在重放用HTML标记填充空格,而我的会得到更干净的实现。我现在没有时间为您实现它。对不起。
var txt = $('pre').text();
txt = txt.replace(/(\r\n|\n|\r)/gm, "</pre></div><div><pre>");
$('div#test').append(txt);
$('pre').text($.trim($(this).text()).wrap('<div></div>');
$(document).ready(function(){
var lines = $('pre').html().split(/\n\s*\n/);
$('pre').remove();
for(i = 0; i < lines.length; i++){
if($.trim(lines[i].length) > 0){
var preDiv = $('<pre />');
var keyDiv = $('<div />');
preDiv.append(keyDiv);
keyDiv.html(lines[i]);
$('body').append(preDiv);
}
}
});