【问题标题】:How to convert Java Regex to JS regex?如何将 Java 正则表达式转换为 JS 正则表达式?
【发布时间】:2017-12-15 17:31:20
【问题描述】:

Java 正则表达式:

String regex = "(?i)^[\\w.-][\\+\\w.-]*+@[\\w.-]+\\.[a-z]{2,4}$";
  Pattern  pattern = Pattern.compile(regex);
  Matcher matcher = pattern.matcher("santo+abc@gmail.com");
 System.out.println(matcher.matches());

JS 正则表达式:

 var regex = /^[\w.-][\w\+.-]*+@[\w.-]+\.[a-z]{2,4}$/i;

但是 JS 正则表达式不是一个有效的表达式。不知道我在这里缺少什么。请指导

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    *+ 是所有格量词。就像*,但如果匹配的数量少于可用的数量,则匹配失败。由于@ 无论如何都与[\w\+.-] 不匹配,但是您可以将其替换为*

    var regex = /^[\w.-][\w\+.-]*@[\w.-]+\.[a-z]{2,4}$/i;
    

    另外,不要使用这个正则表达式来验证电子邮件地址;这是不正确的。正确的请参见Regex validation of email addresses according to RFC5321/RFC5322

    【讨论】:

      【解决方案2】:

      试试:

      /^[\w.-][\w\+.-]*@[\w.-]+\.[a-z]{2,4}$/i
      

      我删除了* 之后的+,因为JavaScript 不支持所有格量​​词。

      你可以在这里试试这个正则表达式:https://regex101.com/r/FmUF5M/1

      【讨论】:

        猜你喜欢
        • 2014-11-08
        • 2017-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多