- 端口校验
validatePort (rule, value, callback){
let reg = /^(([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-5]{2}[0-3][0-5]))$/;
if (value == '') {
return callback(new Error('请输入端口号'))
} else if (reg.test(value) == false) {
callback(new Error('请输入正确的端口号'))
} else {
callback()
}
},
- IP校验
validateIp (rule, value, callback) { //校验IP
let regexp = /^((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}$/
let valdata = value.split(',')
let data = valdata[valdata.length - 1]
//格式是否符合要求
let isCorrect = true;
//是否重复
let isRepeat = false;
if (valdata.length) {
for (let i = 0; i < valdata.length; i++) {
if (regexp.test(valdata[i]) === false) {
isCorrect = false;
}
}
// 每次输入的会立即放在valdata数组中,在查找数组中是否已经存在该元素的时候需要排除自身
//即新加入数组的元素,所以循环到倒数第二个元素时停止
for (let i = 0; i < valdata.length - 1; i++) {
if (valdata[i] === data) {
isRepeat = true;
}
}
}
if (value === '') {
return callback(new Error('请输入iP地址'))
} else if (!isCorrect) {
callback(new Error('请输入正确的ip地址'))
} else if (isRepeat) {
callback(new Error('输入的ip地址不能重复'))
} else {
callback();
}
},
- URL
以http(s)开头,m3u8结尾*
validateUrl(rule, value, callback) {
//以http(s)开头,m3u8结尾
let reg = /^(https?|ftp|file):\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]*?(\.m3u8)$/;
if (!reg.test(value)) {
callback(new Error('要求以https或http开头,m3u8结尾的视频地址'))
} else {
callback()
}
},
- 硬件MAC地址
validateMac(rule, value, callback) {
//let mac = value.toUpperCase();
var reg = /^[A-F\d]{2}:[A-F\d]{2}:[A-F\d]{2}:[A-F\d]{2}:[A-F\d]{2}:[A-F\d]{2}$/;
if (value == '') {
return callback(new Error('请输入MAC地址'))
} else if (reg.test(value.toUpperCase()) == false) {
callback(new Error('MAC地址错误或含有非法字符'))
} else {
callback()
}
}