为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式验证在函数调用时没有返回正确的结果

正则表达式验证在函数调用时没有返回正确的结果

慕婉清6462132 2021-06-29 13:52:44
我有一个组件使用正则表达式来检查电子邮件格式的有效性。我将它附加为输入的 onBlur 函数,该函数useEffect在页面加载时也作为 React 钩子的一部分在加载时运行。该函数应该检查空字段并触发错误消息,提示用户输入电子邮件地址或选择退出。如果输入的电子邮件格式错误,则应触发单独的错误。加载时一切都按预期运行,初始错误触发空输入。用户输入输入字段并离开后会出现此问题。即使输入字段为空,该函数也会触发并设置提示用户输入有效电子邮件的错误。我已经换掉了东西,最初试图通过将第一个检查设置为if(value === undefined || ''但到目前为止,我得到了相同的行为。有什么建议么?Functions for validationfunction validateEmail(value) {  const errors = { hasError: false }  if (value === undefined || '') {    errors.email = 'Enter a valid email address or select Email Opt Out'    errors.hasError = true    return errors  }  if (!/\S+@\S+\.\S+/.test(value)) {    errors.email = 'Enter a valid email address'    errors.hasError = true    return errors  }  return errors}
查看完整描述

2 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

您可以在调用验证方法之前检查您的字符串是否为空吗?


  function onBlur(e) {

    var stringValue = e.target.value || '';


    if(stringValue !== '') checkIfCustomerEmailIsValid(e.target.value)

  }


查看完整回答
反对 回复 2021-07-08
  • 2 回答
  • 0 关注
  • 195 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信