输入的ip地址添加校验规则(Vue)
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Mar
·
需求:有一个input输入框,里面可以输入多个ip地址,每个地址之间以逗号分隔,且输入的ip不能重复,为ip添加合法性校验.
<el-form ref="form" :model="form" :rules="rules">
<el-form-item label="ip" prop="ip">
<el-input v-model="form.ip"></el-input>
</el-form-item>
</el-form>
computed: {
rules() {
return {
ip: [
{
required: true,
trigger: 'blur',
validator: (rule, value, callback) => {
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()
}
}
}, { min: 1, max: 64, message: this.$t('code.rule.4'), trigger: 'blur' }
]
}
}
}
更多推荐
已为社区贡献4条内容
所有评论(0)