我需要使用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());
}
});
});
有正则表达式吗?会很好 ... 谢谢
答案 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,}"$/
它允许组之间的任何空格,而不仅仅是一个空格。