语义形式验证:图像网址

时间:2015-04-06 22:53:17

标签: javascript semantic-ui

是否可以验证输入是图像网址?

我尝试了以下天真的方法:

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吗?

1 个答案:

答案 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