1 回答

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
該(?=1800)\d{6}
模式意味著與 匹配的前四位數(shù)字\d{6}
必須是1800
,而您想要匹配子1800
字符串后的任意六位數(shù)字。這意味著,您需要將非消費(fèi)模式“轉(zhuǎn)換”(?=1800)
為消費(fèi)1800
模式。
另請(qǐng)注意,\d{9}
第二個(gè)替代方案將匹配任何九個(gè)數(shù)字,而您只想匹配不以 開頭的數(shù)字1800
。您需要在第二個(gè)替代方案前面添加一個(gè)(?!1800)
負(fù)的前瞻模式。不幸的是,JavaScript RegExp 不支持條件構(gòu)造,在 PCRE、.NET 等中您可以使用?^\+61(?(?=1800)1800\d{6}|\d{9})$
,但在本例中不行。
在這里,您可以使用
^\+61(?:1800\d{6}|(?!1800)\d{9})$
請(qǐng)參閱正則表達(dá)式演示。
細(xì)節(jié)
^
- 字符串的開頭\+61
-+61
子串(?:1800\d{6}|(?!1800)\d{9})
- 匹配的非捕獲組1800\d{6}
?-1800
子字符串,然后是任意六位數(shù)字|
- 或者(?!1800)\d{9}
- 任何不以以下字符開頭的九位數(shù)字1800
$
- 字符串末尾。
添加回答
舉報(bào)