多行textarea值:所有行中都不存在换行符

时间:2017-02-12 20:51:10

标签: javascript html textarea

我发现了一个奇怪的错误(?)与textareas ...

说,有一个<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,没有多大帮助

1 个答案:

答案 0 :(得分:3)

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

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