检验公用方法模板示例 validate.js
方法.js代码
// 验证唯一 list的key值是否包含val list[key]包含val?
function validateOnly(key, val, text, list) {
for (let i = 0; i < list.length; i++) {
if (list[i][key] === val) {
plus.nativeUI.toast(text + '已存在', {
background: '#ffa38c',
})
return false
}
}
return true
}
//判断验证是否符合要求(目前时为空) 验证message的key值是否符合rule规范 rule.test(message[key])
function validateNull(key, rule, message) {
if (!rule.test(message[key])) {
return false
}
return true
}
// 导出
const validate = {
validateOnly: validateOnly,
validateNull: validateNull,
}
export default validate
使用示例
import validate from '../utils/validate.js'//方法:验证填写信息
//填写规则
const rules = {
name: {
rule: /\S/,
info: "*机床名字必填"
},
ip: {
rule: /\S/,
info: "*机床ip必填"
},
equipmentType: {
rule: /\S/,
info: "*设备类型必选"
}
}
constructor(props) {
super(props)
this.state = {
message: { // 填写的数据
boxId: '',
equipmentType: '',
productModel: '',
name: '',
ip: '',
line: '',
},
nameBool: true,//名字填写是都符合规范
ipBool: true,//ip填写是都符合规范
equipmentTypeBool: true//设备类型填写是都符合规范
}
// 验证机床名字、IP、设备类型必填
if (!validate.validateNull('equipmentType', rules.equipmentType.rule, message)) {
this.setState({
equipmentTypeBool: false
})
return
}
this.setState({
equipmentTypeBool: true
})
// 先验证名字和ip的值的唯一性
if (validate.validateOnly('name', name, '机床名字', list) &&
validate.validateOnly('ip', ip, '机床IP', list)) {
this.addData(boxId)
}