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

使用 RegEx 将电子邮件与公司的 URL 匹配

使用 RegEx 将电子邮件与公司的 URL 匹配

慕妹3242003 2021-11-18 16:34:53
我有一个非常简单的联系人,但出于业务需求,我们需要使用联系用户的电子邮件验证公司的 url如果您的电子邮件是user@examplecompany.com并且您的 url 是http://examplecompany.com,则表单将通过。我正在尝试使用正则表达式来做到这一点,但我一生都无法弄清楚我做错了什么。到目前为止,这是我的代码:    validateEmail = (email, url) => {       let rootUrl = url.match(/^(?:https?:\/\/)?(?:[^@\/\n]+@)?(?:www\.)?([^:\/?\n]+)/)[1];       let emailDomain = email.match(/@(.*)/)[1];       return rootUrl === emailDomain;    }我的 emailDomain 正在返回undefined。
查看完整描述

1 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

我尝试使用正则表达式实现它,如下所示。


const validateEmail = (email, url) => {

  let regex = /(https?:\/\/)?(\w*\.)?(\w*\.\w*)/

  let rootUrl = url.match(regex)[3];

  let emailDomain = email.match(/@(.*)/)[1];

  return rootUrl === emailDomain;

}


// Testing

let emails = ["user@examplecompany.com", "user@othercompany.com"]


let urls = ["http://examplecompany.com", "https://examplecompany.com", "http://www.examplecompany.com", "https://www.examplecompany.com","examplecompany.com", "www.examplecompany.com"]


urls.forEach((url) => {

  emails.forEach((email) => {

    let valid = validateEmail(email, url)

    console.log(`email = ${email}, url = ${url}, isValid: ${valid}`)

  })

})

您也可以尝试使用URL api(当然,它不适用于IE)提取主机名,然后提取域名与电子邮件地址的域名进行比较。


查看完整回答
反对 回复 2021-11-18
  • 1 回答
  • 0 关注
  • 233 浏览
慕课专栏
更多

添加回答

举报

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