gpt4 book ai didi

javascript - 如何替换文本区域中的换行符

转载 作者:太空宇宙 更新时间:2023-11-04 16:21:09 25 4
gpt4 key购买 nike

我想替换文本区域中的空格和换行符,如果输入是

________________________________________
i am a
fat

boy zzz
________________________________________

结果应该是

i<sp>am<sp>a<br>fat<br><br>boy<sp>zzz

空格被<sp>代替换行符替换为 <br> .

空间替换成功,但是当我尝试用 <br> 替换新行时我失败了(我尝试了3-4种不同的方法,但都做不到)

如果有人有想法,将不胜感激?提前致谢

代码如下

<!DOCTYPE html>
<html>
<body>

<textarea id="txtArea" rows="10" cols="70">i am fat boy </textarea>

<input type="text" id="StringTextBox" value="" >

<p id="demo"> </p>

<button onclick="myFunction()">Try it</button>

<script>

function myFunction() {
var str = document.getElementById("txtArea").value;

var res = str.split(' ').join('&lt'+"sp"+'&gt');

document.getElementById("demo").innerHTML = res;

}
</script>

</body>
</html>

最佳答案

我不会使用 splitjoin为此,只需直接更换即可。请注意,不同的操作系统(甚至同一操作系统上的不同浏览器)使用不同的字符作为换行符,因此为了覆盖您的基础,您可能需要交替使用:

str = str.replace(/(?:\r|\n|\r\n)/g, '<br>');

这将替换每个独立的 \r , 一个独立的 \n , 或 \r\n<br>相邻.

当然,我们将其与 .replace(/ /g, '<sp>') 相结合做空格:

str = str.replace(/ /g, '<sp>').replace(/(?:\r|\n|\r\n)/g, '<br>');

免费的实例:

var originals = [
"i am a\nfat\n\nboy zzz",
"i am a\rfat\r\rboy zzz",
"i am a\r\nfat\r\n\r\nboy zzz"
];

originals.forEach(function(str) {
str = str.replace(/ /g, '<sp>').replace(/(?:\r|\n|\r\n)/g, '<br>');
snippet.log(str);
});
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

如果它是一个非常大的字符串,那么通过它两次(两次调用 replace )可能并不理想。在那种不太可能的情况下,我们可以将所有东西组合成一个 replace使用回调函数:

str = str.replace(/(?: |\r|\n|\r\n)/g, function(m) {
return m === " " ? "<sp>" : "<br>";
});

实例:

var originals = [
"i am a\nfat\n\nboy zzz",
"i am a\rfat\r\rboy zzz",
"i am a\r\nfat\r\n\r\nboy zzz"
];

originals.forEach(function(str) {
str = str.replace(/(?: |\r|\n|\r\n)/g, function(m) {
return m === " " ? "<sp>" : "<br>";
});
snippet.log(str);
});
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>

但在正常情况下,对于大小合理的字符串,两次调用 replace直接替换可能比使用回调函数的单个调用更好。

关于javascript - 如何替换文本区域中的换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29080989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com