我要匹配以下代码:
.
不连续出现的字符串,也可以是
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正则表达式)。那么,所需的正则表达式应该是什么?
答案 0 :(得分:1)
匹配没有连续点的整个字符串:
/^(?!.*\.\.).*$/