有什么方法可以找出在Javascript中使用哪个换行符?

时间:2010-06-11 18:49:47

标签: javascript html forms

我正在尝试将一些文本解析为textarea控件,同时用普通的换行符替换所有的文本。

我已经能够在Windows中通过用CR取代
来实现它(它与CRLF无法正常工作,它给了我换行+空白空间)但我'我担心这段代码在Unix / Mac中不起作用,因为它们使用LF进行换行。

有没有办法在javascript中使用系统默认换行符?类似于.Net中的Environment.NewLine

(我无法在此编辑器中编写反斜杠,但我对\r使用CR\n使用LF

编辑:我应该提到一切都适用于FF,它一如既往的Internet Explorer(8)我遇到了问题。

EDIT2:

我可以使用此代码重现我的问题。当我在IE8中运行它时,我得到“row1 row2”,但是当我在FF中运行时,我得到真正的换行符:


<html>
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
    <script type="text/javascript">

    function fill() {
        var text = "row1<br /><br />row2";

        $('#fill_me').text(text.replace(/<br \/>/g, '\n'));
    }

    </script>

</head>

<body onload="fill()">
    <textarea rows=10 cols=100 id="fill_me"></textarea>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

您始终可以在Javascript中使用\n作为换行符。

例如声明,

document.getElementById('mytextarea').value = "This is some text.\n\nAnd here is some more.";

在“这是一些文字”之间添加两个回报。并且“还有更多。”在IE,Firefox,Chrome,Safari等中

答案 1 :(得分:1)

你的问题不是换行符,而是你使用jQuery函数。

您应该使用.val()代替.text()来更改value的{​​{1}}。 <textarea>用于更改节点的textContent(如.text()等)。 <div>内的换行符可能会转换为普通空格......

Demonstrated on jsfiddle