javascript文本区域行数

javascript textarea lines count

本文关键字:区域 文本 javascript      更新时间:2023-09-26

我需要计算文本区域中的所有行。我的代码:

function textareaCurLineNum(obj)
{
    return obj.value.split(/['r'n]/g).length;
}

在Firefox和Chrome中,它运行良好。在歌剧中,它又回来了一次。

我试试这个:

function textareaCurLineNum(obj)
{
    if (!/Opera/.test(navigator.userAgent)){
        return obj.value.split(/['r'n]/g).length;
    } else {
        return obj.value.split(/['r'n]/g).length-1;
    }
}

现在,如果行数=3,opera返回4,4行-6,5行-8。哪里有问题?

方括号包含一组符号,而不是一个序列。在regexp中拆分为。

function textareaCurLineNum(obj)
{
    if (!/Opera/.test(navigator.userAgent)){
        return obj.value.split(/'n/g).length;
    } else {
        return obj.value.split(/'n/g).length-1;
    }
}

仅在'n上尝试拆分。你写的方式-如果我有:

first line 'r'n
second line

该分割将返回3,因为它将'r'n之间的虚无作为一条线来计数。

一个更稳健的解决方案是首先通过用'n替换所有'r'n(win)和仅'r(mac)来规范文本,然后在'n上进行拆分。