簡體   English   中英

正則表達式完全匹配^ abc $不起作用

[英]RegEx exact match ^abc$ doesn't work

我正在嘗試在JavaScript中使用正則表達式來測試表單文本輸入的值是否為法語手機號碼。

法語移動電話號碼以0607開頭,后跟8位數字,例如: 06112233440744332211 這些數字的國際形式以+33開頭,代替了前一個0 ,例如: +33611223344+33744332211

我正在使用此RegEx: (\\+\\b33|\\b0)[67][0-9]{8}\\b ,它測試輸入是否以+336/7或06/7開頭,然后是8位數字。

我添加了單詞邊界( \\b ),所以06112233440611223344之類的數字(兩個串聯的正確形式)不匹配。

此RegEx適用於以下情況:

0611223344 // matches
0744332211 // matches
+33611223344 // matches
+33744332211 // matches
06112233440744332211 // doesn't match

但是我仍然遇到這些輸入問題:

+33611223344+33611223344
0611223344 0744332211
0744332211+33611223344
0744332211 +33611223344

他們都匹配...

我試圖以所有可能的方式將^$添加到RegEx中,但是每當我添加這些符號之一時,RegEx將不再起作用。

您可以使用下面的正則表達式來匹配所有法語電話號碼,

^(?:(?:0|\+33)(?:6|7))\d{8}$

DEMO

如果您要匹配格式為06 21 05 65 48+33 6 21 05 65 48的數字,請使用以下正則表達式,

^(?:(?:(?:0|\+33)(?:6|7))\d{8}|0[67](?: \d{2}){4}|\+33 [67](?: \d{2}){4})$

DEMO

^(\+\b33|\b0)[67][0-9]{8}$

您的正則表達式工作正常。只需添加錨點。

參見演示。

http://regex101.com/r/pP3pN1/35

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM