如何在 javascript 中匹配正则表达式?

发布于 2024-11-18 14:41:58 字数 223 浏览 4 评论 0原文

我正在尝试匹配电子邮件正则表达式 \b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[AZ]{2,4}\b 与 Javascript 中的字符串。目前我正在使用代码 email.match(/b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[AZ]{2, 4}/) 但它与任何电子邮件地址都不匹配。在 Javascript 中使用正则表达式之前是否需要更改?

I'm trying to match the email regex \b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b with a string in Javascript. At the moment I'm using the code email.match(/b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/) but it doesn't match any email addresses. Do regex's need to be changed before they are used in Javascript?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

当梦初醒 2024-11-25 14:41:58

使用正则表达式匹配电子邮件地址时出现问题:

您必须添加不区分大小写的修饰符,因为您只匹配大写字符。您还缺少 b 前面的 \ (这使得表达式与 b 字面匹配)和 \b< /code> 最后(感谢@Tomalak)(即使没有它它也会“工作”):

email.match(/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i)

如果你只想知道表达式是否匹配或不,您可以使用 .test

patter.test(email)

有关正则表达式的更多信息JavaScript

Problems matching email addresses with regex aside:

You have to add the case-insensitive modifier since you are only matching uppercase characters. You also are missing the \ in front of the b (which makes the expression match a b literally) and the \b at the end (thanks @Tomalak) (even though it will "work" without it):

email.match(/\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i)

If you only want to know whether the expressions matches or not, you can use .test:

patter.test(email)

More about regular expressions in JavaScript.

黑色毁心梦 2024-11-25 14:41:58

您应该使用符合 RFC 2822 的正则表达式来验证电子邮件,即使它很大;

function check_mail(str){
    var reg=new RegExp(/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/i)

  if(str.match(reg)){
    return true;
  }else{
    return false;
  }
}

有关使用正则表达式验证电子邮件的更多详细信息,请参阅 regular-expression.info

You should use a RFC 2822 compliant RegEx for validating emails, even if it's a big one;

function check_mail(str){
    var reg=new RegExp(/(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/i)

  if(str.match(reg)){
    return true;
  }else{
    return false;
  }
}

For more details on validating email using RegExs see regular-expression.info

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文