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

Javascript 在将文本从textarea传输到表单元格时保留前空格,javascript,regex,string,Javascript,Regex,String,我需要你的帮助 如何修改regex/replace编码,使我不仅能够保留文本后面的换行符,还能够保留文本前面、文本之间和文本后面额外的空格 我附上了一张照片,上面是目前的结果。预期的最终结果应反映第一个文本区域的结果 <!DOCTYPE html> <html> <head> <script type="text/javascript"> function test() { //textarea to table cell var x =

我需要你的帮助

如何修改regex/replace编码,使我不仅能够保留文本后面的换行符,还能够保留文本前面、文本之间和文本后面额外的空格

我附上了一张照片,上面是目前的结果。预期的最终结果应反映第一个文本区域的结果

<!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>

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

//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;', ' ')
改变这个

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


如果你想保留所有内容,替换的内容是什么?现在还不清楚问题是什么,但为了在HTML输出中保留空白,你可以在原始文本周围使用标记。如果你有文本区域中的文本,并且它作为数据写入单元格,它不会保留换行符。因此replace函数会找到换行符,并使用的重新设置字符串。然后在最后,字符串被重新调整,以便将表中的s转换为文本区域中的适当换行符。似乎,在最后,如果文本前面有空格,它们将被忽略。然后,\r?\n=>和=>\n应该是反向操作?Martin,这很好,表格单元格类似于在第一个文本区域中输入的第一个文本的单元格,但现在最终结果是,在第二个文本区域中,我的文本前面出现了alful's。要把它们转换成适当的文本间距吗?太棒了!非常感谢。