匹配一次,但不重复

时间:2018-11-20 06:05:33

标签: javascript regex match

我要匹配以下代码:

  

.不连续出现的字符串,也可以是

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字符串。

此外,我希望我的正则表达式为,因为它是非常长正则表达式的一部分(您可以假设它是Email ID正则表达式)。那么,所需的正则表达式应该是什么?

1 个答案:

答案 0 :(得分:1)

匹配没有连续点的整个字符串:

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