多行 textarea 值:并非所有行都存在换行符

Multiline textarea value: line feed not present in all lines

我在文本区域中发现了一个奇怪的错误 (?)...

说,有一个 <textarea> 多行 文本(用户粘贴的文本或预设文本无关紧要,两者都经过测试)。

我想从 <textarea> 获取文本并将 \n 替换为其他内容...结果 .replace 仅在第一行有效。

这是代码,明白我的意思:

<textarea id="txt">line1
line2
line3
line4</textarea>

<script>
var strval = document.getElementById("txt").value.replace("\n", "<br>");
// strval returns this:

// line1<br>line2
// line3
// line4
</script>

我用 Chrome 和 Firefox 对此进行了测试。这是一个 jsfiddle https://jsfiddle.net/aapgejvb/

奇怪吧?我是刚刚发现了 WebKit 的一个错误还是我太蠢了?

PS。也用 jQuery 的 .val() 进行了测试,同样的结果(显然)

PPS。已找到 this,帮助不大

.replace("\n", "<br>") 只会替换第一次出现的 \n(换行符)。 要替换所有你应该使用 replace(/\n/g, "<br />");

演示:https://jsfiddle.net/aapgejvb/2/