Javascript len函数

时间:2012-11-10 03:49:46

标签: javascript maxlength

我有一个表单验证,检查最小长度,工作正常。但是我还需要检查最大长度。

我正在使用以下代码作为名为“msg”的textarea字段来验证最小长度,这样可以正常工作:

 var msgval    = $("#msg").val();
 var msglen    = msgval.length;

if(msglen < 4) {
$("#msg").addClass("error");
}
else if(msglen >= 4){
$("#msg").removeClass("error");
}

这很好用,但如果我为msglen添加类似的验证&gt; 250,它在结构化时忽略了先前的最小长度要求:

if(msglen < 4) {
$("#msg").addClass("error");
}
else if(msglen >= 4){
$("#msg").removeClass("error");
}
if(msglen > 250) {
$("#msg").addClass("error");
}
else if(msglen <= 250){
$("#msg").removeClass("error");
}

如何组合这两个参数?

3 个答案:

答案 0 :(得分:2)

使用逻辑OR运算符测试两个条件。

if (msglen < 4 || msglen > 250) {
    $("#msg").addClass("error");
} else {
    $("#msg").removeClass("error");
}

不需要else if条件。如果它不小于4且不大于250,那么你知道你可以删除该类。


或者更短的版本可以这样写:

$("#msg").toggleClass("error", msglen < 4 || msglen > 250);

作为第二个参数传递的truthy值将添加该类。假名值将删除它。

答案 1 :(得分:1)

我会这样写:

var msgval = $("#msg").val(),
    msglen = msgval.length,
    notValid = msgval.length < 4 || msgval.length > 250;
$('#msg').toggleClass('error', notValid);

或者您始终可以将文本框的maxlength属性设置为250,然后您不必担心长度超过250个字符。 :)

答案 2 :(得分:0)

if(msglen < 4) {
  $("#msg").addClass("error");
}

添加课程error

else if(msglen <= 250){
  $("#msg").removeClass("error");
}

稍后删除几行..

为什么不试试这个。

if(msglen < 4 || msglen > 250) {
    $("#msg").addClass("error");
}