【问题标题】:Textarea limit characters for each row in javascriptjavascript中每一行的Textarea限制字符
【发布时间】:2012-12-23 22:47:09
【问题描述】:

我正在尝试使用 javascript 限制文本区域中每一行的字符数。

我在这里看到了一些例子,但并不完全符合我的要求。

我写了一些东西,只有当你每次添加超过限制时才可以。

换句话说,我每行有 10 个字符的限制,如果你总是输入至少 10 个字符就可以了,但是如果你想在第一行输入 5 个字符并按回车键移动到下一行,它不会让我它一直将我重定向到第一行,并且无法真正弄清楚如何克服这个问题。

<textarea onchange="Validate(this)" onkeyup="Validate(this)" class="txtValidation15   textarea" id="txtpr1-0" cols="30" rows="20" name="txtpr1-0"></textarea>

function Validate(control)
 {
    var limit = 10;
    var v = control.value; //var v = $(this).val();
    var vl = v.replace(/(\r\n|\n|\r)/gm,"").length;
    var newtext="";
    for (var i = 0; i < v.length ; i = i + limit)
    {
        v = v.replace(/(\r\n|\n|\r)/gm,"");
        var n = v.substr(i,limit)
        if(i+limit < v.length)
            n= n + '\n';
            
        newtext += n;
    }
    control.value = newtext;
}

【问题讨论】:

标签: javascript


【解决方案1】:

首先将它分成几行,这样你的计数是每行而不是聚合。

function Validate(control) {
    var limit = 10;
    var v = control.value; //var v = $(this).val();
    var lines = v.split(/(\r\n|\n|\r)/);
    var newtext = "";
    for (var i = 0; i < lines.length ; i++) {
        var line = lines[i];
        if(line.length > limit) {
          line = line.substr(0,limit);
        }
        newtext += line;
    }
    control.value = newtext;
}

将此函数粘贴到 textarea 中会将其截断为:

0123456789
function V
    var li
    var v 
    var li
    var ne
    for (v
        va
        if

        }
        ne
    }
    contro
}

【讨论】:

  • 这样我就可以输入超过限制的内容:(
  • 它确实有效,抱歉,我的错,是缺少括号。谢谢你!
【解决方案2】:

做这样的事情怎么样?

JAVASCRIPT:

function Validate(control)
 {
    var limit = 10;
    var v = control.value; //var v = $(this).val();
    var vl = v.replace(/(\r\n|\n|\r)/gm,"").length;
    var newtext="";
    for (var i = 0; i < v.length ; i++)
    {
    if (i%limit==0){
        v = v.replace(/(\r\n|\n|\r)/gm,"");
        var n = v.substr(i,limit)
            n= n + '\n';
        newtext += n;
        }
    }
    control.value = newtext;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-31
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-16
    相关资源
    最近更新 更多