jquery验证textarea

时间:2012-08-18 00:17:06

标签: jquery jquery-validate

我需要使用jquery验证来验证textarea。我正在寻找正则表达式来检查由空格分隔的多个带引号的字符串,并且长度超过5个字符..:

“引用文字..”“其他一些引用文字”“另一个引用字符串”=好

“引用文字..”“”“另一个引用字符串”=不好

“引用文字..”“abcd”“另一个引用字符串”=不好

以下仅检查第一个引用的文字...(“引用的字符串长于5”“” - >这会通过,但不应该这样做)

$(document).ready(function()
{
   $.validator.addMethod("coll_regex", function(value, element) { 
   return this.optional(element) || /"(.*?)"/.test(value); 
    }, "Message here......");

$("#f_coll").validate(
{
    rules:{
    'coll_txt':{
        required: true,
        minlength: 5,
        maxlength: 200,
        coll_regex: true
        }
    },
    messages:{
    'coll_txt':{
        required: "Textarea is empty...",
        minlength: "Length must be, at least, 5 characters..",
        maxlength: "You exceeded the max_length !",
        coll_regex: "Use the quotes...."
       }
    },
    errorPlacement: function(error, element) {
      error.appendTo(element.next());
  }
});
});

有正则表达式吗?会很好 ... 谢谢

1 个答案:

答案 0 :(得分:2)

您正在寻找的正则表达式是/^("[^\".]{5,}" )*"[^\".]{5,}"$/

'"abcdefg" "abcdefg" "01324"'.match(/^("[^\".]{5,}" )*"[^\".]{5,}"$/)  //--> true
'"abcdefg" "123" "01324"'.match(/^("[^\".]{5,}" )*"[^\".]{5,}"$/)  //--> false
'"abcdefg" "" "01324"'.match(/^("[^\".]{5,}" )*"[^\".]{5,}"$/)  //--> false

修改

这个更准确:/^("[^\".]{5,}"\s+)*"[^\".]{5,}"$/ 它允许组之间的任何空格,而不仅仅是一个空格。