在将文本从textarea传输到表格单元格之前保留空格

时间:2014-09-24 16:25:20

标签: javascript regex string

我需要你的帮助,

如何修改正则表达式/替换编码,以便我不仅能够保留文本后的换行符,还能保留文本前面,文本之间和文本之后的额外空格。

我附上了目前结果的图片。预期的最终结果应该与第一个文本区域的结果相同

enter image description here

<!DOCTYPE html>

<html>

<head>

<script type="text/javascript">

function test() {

//textarea to table cell
var x = document.getElementById('txt1').value.replace(/\r?\n/g,'<br>')

//table cell to textarea

document.getElementById("table1").children[0].children[0].innerHTML = x

var y = document.getElementById("table1").children[0].children[0].innerHTML

//some processing first to replace the <br>'s before the final output

y = y.replace(/\s*<br\s*\/?>\s*/g, '\n')

document.getElementById("txt2").value = y

}


</script>

</head>

<body>
<textarea style="height: 200px;" id="txt1"></textarea>
<br>
<table id="table1"><tr><td>cell data1</td></tr></table>
<br>
<input type="button" value="test it" onclick="test()">
<br>
<textarea style="height: 200px;" id="txt2"></textarea>
</body>

</html>

2 个答案:

答案 0 :(得分:0)

尝试对前导和多个空格进行编码,如下所示:

//textarea to table cell
var x = document.getElementById('txt1').value.replace(/\r?\n/g,'<br>')
        .replace(/^\s|\s(?=\s)/g, '&nbsp;');
有些行后来反过来了:

y = y.replace(/\s*<br\s*\/?>\s*/g, '\n').replace('&nbsp;', ' ')

答案 1 :(得分:0)

更改此

document.getElementById("table1").children[0].children[0].innerHTML = x;

document.getElementById("table1").children[0].children[0].innerHTML = "<pre>" + x + "</pre>";