代码之家  ›  专栏  ›  技术社区  ›  vrintle Jake

匹配一次但不重复[重复]

  •  -1
  • vrintle Jake  · 技术社区  · 6 年前

    我需要匹配以下代码:

    字符串,其中 . 不是连续出现的,可以交替出现

    let strArr = [
      '#foo3.5', // true
      '#bar34..34', // false
      '.', // true
      '#ipv4-1.1.1.1' // true
    ];
    
    const re = /^([^.]*\.[^.]*)+$/;
    
    strArr.map(
      (val, idx) => console.log(`${idx}: ${re.test(val)}`)
    );

    但是,上面的代码也匹配 #bar34..34 ,即 * 我的模式中的元字符 + ,但是,它没有匹配 . #ipv4-1.1.1.1 串。

    另外,我希望我的正则表达式是 小的 非常 长正则表达式(您可以假设它是电子邮件ID正则表达式)。那么,所需的正则表达式应该是什么?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Amadan    6 年前

    /^(?!.*\.\.).*$/