javascript文本区域行数

javascript文本区域行数,javascript,opera,Javascript,Opera,我需要数一数textarea中的所有行。 我的代码: 在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]

我需要数一数textarea中的所有行。 我的代码:

在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;
    }
}
现在,如果lines=3,opera返回4,4行-6,5行-8。
哪里有问题?

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

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

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

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
之间的空值作为一行计算


一个更可靠的解决方案是,首先将所有
\r\n
(win)替换为
\r
(mac),然后在
\n
上拆分,然后只尝试在
\n
上拆分。你写它的方式-如果我有:

first line \r\n
second line
此拆分将返回3,因为它将
\r
\n
之间的空值作为一行计算


一个更强大的解决方案是首先将所有
\r\n
(win)和
\r
(mac)替换为
\n
,然后在
\n

上拆分。谢谢。
函数textareaCurLineNum(obj){return obj.value.split(/\n/g).length;}
工作正常。不要使用浏览器嗅探!这使得Opera无法在不破坏网站的情况下改变行为以与其他浏览器保持一致。谢谢。
函数文本AreaCurlineum(obj){return obj.value.split(/\n/g).length;}
工作正常。不要使用浏览器嗅探!这使得Opera不可能在不破坏网站的情况下改变行为以与其他浏览器保持一致。