为什么我把那个result全部写在if的括号里面,就不行。
单独拿出来就可以呢?
如图:
` let checkWords = (rule, value, callback) => {
console.log(value)
if (value === '') {
this.$message.warning('关键词不能为空!')
return callback(new Error('关键词不能为空!'))
}
let regBox = { regWords: /^([\u4e00-\u9fa50-9]+|[A-Za-z0-9]+)$/g }
console.log('第一个条件')
// console.log(regBox.regWords.test(value))
let result = regBox.regWords.test(value)
if (result === true) {
return callback()
} else {
this.$message.warning('关键词格不能中英文混杂!不能有标点符号!!')
return callback(new Error('关键词不能中英文混杂!不能有标点符号!'))
}
}`
我之前遇到过一个问题,可能对你解决这个问题有帮助。
将带
/g
的正则表达式用变量存起来,去循环校验一组数据,本来应该是全部返回true
,结果校验结果一会儿true
,一会儿false
,究其原因,其实是/g
修饰符和lastIndex
属性之间的微妙关系。回到正题,如果你想把
regBox.regWords.test(value)
直接写在判断里,可以先把regWords
里全局匹配修饰符g
去掉再试试。希望对你有所帮助。