JavaScript textarea获取行数(带换行符)

时间:2016-07-01 17:48:11

标签: javascript textarea

我有一个textarea,我想知道有多少行。现在我已经搜索了但我只看到了这个解决方案:

mytextarea.value.split("\n").length

嗯,这有效,但这不是我想要的。

例如我的textarea是这样的:

textarea

当我输入时:

123456789abcdefghijkl
sasasasakasasask;as

当我使用split(“\ n”)。值时,我得到2这是正确的,但如果我把它放入:

123456789abcdefghijklsasasasasasasasasas

我得到的结果1不正确:

textarea without enters

结果应为2,因为有2行,但不会使用\n创建换行符。

任何人都知道如何计算包含没有\n的换行符的行数?

2 个答案:

答案 0 :(得分:0)

每行结束,按Enter键。当您按Enter键时,将\ n插入行。



<html>
    <head>
    </head>
    <body>
        <textarea id="myTxt"></textarea>
        <button id ="btn" onclick="myLine()">Try</button>
        <p id="x"></p>
        <script>
           function myLine() {
               var txt = document.getElementById("myTxt");
               var x = document.getElementById("x"); 
               x.innerHTML =txt.value.split("\n").length;
           }
        </script>
    </body>
</html>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

知道了!

static lineCaculator() {
            let dummy               = document.createElement('div');
            dummy.style.font        = AutoTextareaResizer.computedStyle.call(this, 'font');
            dummy.style.width       = AutoTextareaResizer.computedStyle.call(this, 'width');
            dummy.style.wordWrap    = 'break-word';
            dummy.innerHTML         = this.value;


            document.body.appendChild(dummy);

            let lines = parseInt(AutoTextareaResizer.computedStyle.call(dummy, 'height')) /  this.realLineHeight;

            document.body.removeChild(dummy);

            return Math.max(1, lines);
        }