0

jqueryvalidateで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());
  }
});
});

これを行う正規表現はありますか?素晴らしいでしょう...ありがとう

4

1 に答える 1

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,}"$/ 。単一のスペースだけでなく、グループ間の空白を許可します。

于 2012-08-18T00:38:07.990 に答える