是否可以验证输入是图像网址?
我尝试了以下天真的方法:
validations.img = {
identifier: 'img',
rules: [{
type: 'url',
prompt: 'not a valid URL'
},
{
type: "contains[.png, .jpg, .jpeg, .gif, .tiff, .tif]",
prompt: 'not image'
}]
};
但看起来包含正在进行AND操作。我可以让它做OR吗?
答案 0 :(得分:2)
semantic-ui
允许您在$.fn.form.settings.rules
添加验证规则添加功能,例如,如果您想检查string
是否包含您的某个数组元素[.png, .jpg, .jpeg, .gif, .tiff, .tif]
您可以添加一个新功能,例如containsInArray
,如下所示:
// function to check if the text contains an element from the array
$.fn.form.settings.rules.containsInArray = function(text,csv){
var array = csv.split(','); // you're separating the string by commas
var isContains = false; // return value
// for each element check it usign contains function
$.each(array,function(index,elem){
if($.fn.form.settings.rules.contains(text,$.trim(elem))){
// if condition are meet set the result as true
// and breaks the loop
isContains = true;
return false;
}
});
console.log(text + " " + isContains);
return isContains;
};
这个功能可能会更有效率,你可以尝试改进它,但它适用于你的情况。
然后您必须更改规则,使用type: "containsInArray[.png, .jpg, .jpeg, .gif, .tiff, .tif]"
代替type: "contains[.png, .jpg, .jpeg, .gif, .tiff, .tif]"
。
查看此工作 jsfiddle