element ui表单验证时遇到的问题

为什么我把那个result全部写在if的括号里面,就不行。
单独拿出来就可以呢?
如图:
image.png
` 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('关键词不能中英文混杂!不能有标点符号!'))
  }
}`
阅读 1.4k
1 个回答

我之前遇到过一个问题,可能对你解决这个问题有帮助。

将带/g的正则表达式用变量存起来,去循环校验一组数据,本来应该是全部返回true,结果校验结果一会儿true,一会儿false,究其原因,其实是/g修饰符和lastIndex属性之间的微妙关系。

回到正题,如果你想把regBox.regWords.test(value)直接写在判断里,可以先把regWords里全局匹配修饰符g去掉再试试。希望对你有所帮助。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题