我有一個HTML的手機模式,將接受這些格式:無效的正則表達式:龍量詞括號
+61 x xxxx xxxx,
+61xxxxxxxxx,
0x xxxx xxxx,
0xxxxxxxxx,
xxxx xxxx,
xxxxxxxx,
+xx xxx xxx xxx,
+xxxxxxxxxxx,
0xxx xxx xxx,
0xxxxxxxxx
它是幾個月前的工作,現在突然我的手機字段不驗證。我有這個錯誤:
Pattern attribute value ^(?:0|\(?\+61\)?\s?|0061\s?)[1-79](?:[\.\-\s]?\d\d){4}|(\d{4}[\s]\d{4})|(\d{8})|(\d{4}[\s]\d{3}[\s]\d{3})|(\+61\[\s]\d{3}[\s]\d{3}[\s]\d{3})|(\+61\s\d{3}\s\d{3}\s\d{3})$ is not a valid regular expression: Uncaught SyntaxError: Invalid regular expression: /^(?:0|\(?\+61\)?\s?|0061\s?)[1-79](?:[\.\-\s]?\d\d){4}|(\d{4}[\s]\d{4})|(\d{8})|(\d{4}[\s]\d{3}[\s]\d{3})|(\+61\[\s]\d{3}[\s]\d{3}[\s]\d{3})|(\+61\s\d{3}\s\d{3}\s\d{3})$/: Lone quantifier brackets
這正是它的意思。此正則表達式無效。 – nicovank
是的,正則表達式存在一個明確的問題,如果你不熟悉構造和測試正則表達式的語義,我強烈建議使用像expresso這樣的工具(http://www.ultrapico.com/Expresso.htm )來構建和測試正則表達式。 –
看看可視化,你可以清楚地看到它是無效的 - https://regexper.com/#%5E(%3F%3A0%7C%5C(%3F%5C%2B61%5C)%3F%5Cs %3F%7C0061%5CS%3F)%5B1-79%5D(%3F%3A%5B%5C。%5C-%5CS%5D%3F%5CD%5CD)%7B4%7D%7C(%5CD%7B4 %7D%5B%5CS%5D%5CD%7B4%7D)%7C(%5CD%7B8%7D)%7C(%5CD%7B4%7D%5B%5CS%5D%5CD%7B3%7D%5B%5CS %5D%5CD%7B3%7D)%7C(%5C%2B61%5C%5B%5CS%5D%5CD%7B3%7D%5B%5CS%5D%5CD%7B3%7D%5B%5CS%5D%5CD %7C%7C%5C%2B61%5Cs%5Cd%7B3%7D%5Cs%5Cd%7B3%7D%5Cs%5Cd%7B3%7D)%24 –