今天琚哥要我把项目中的要输入的 url 地址改为可输入多个 url 地址。我想了想,可以用string中的 split方法对url 地址进行切割放到数组里去,然后进行遍历验证。好了,说了这么多,开工吧
首先我写了一个url 的验证方法
//对urls的vtypes验证
var urlTest = /http:\/\/[A-Za-z0-9\.-]{3,}\.[A-Za-z]{3}/;
Ext.apply(Ext.form.VTypes, {
urls:function(val,field){
var urlArray = []; //定义一个数组,方便下面存放分割后的url地址
urlArray = val.split(","); //用 split方法进行分割
var flag = 0; //定义一个验证是否通过的标志
for(var i=0;i<urlArray.length;i++){
if(!urlTest.test(urlArray[i])){
flag++; //循环验证,因为urlTest.test(urlArray[i]是boolean值,所以当验证不通过的时候,就flag++,
}
}
if(flag!=0){ //对flag进行判断,大于0,则不通过
return false;
}else{
return true;
}
},
urlsText:'请输入符合规范的url地址',
});
然后在后面的组件里直接用进行验证即可
vtype:'urls',
本来我一直琢磨验证的原理,现在是弄懂了。
1.首先组件里使用 vtype:'urls',
2.调用上面的验证方法
3.返回true与false,为 true时不显示错误信息,为false时返回urlsText 里的值:请输入符合规范的url地址