我想寫的正則表達式允許一些特殊字符,如#-.
,它應該至少包含一個字母。我想了解以下的事情也:在正則表達式中,?= ^是什麼意思?
/(?=^[A-Z0-9. '-]{1,45}$)/i
在這個正則表達式是什麼?=^
意思?什麼是正則表達式中的子表達式?
我想寫的正則表達式允許一些特殊字符,如#-.
,它應該至少包含一個字母。我想了解以下的事情也:在正則表達式中,?= ^是什麼意思?
/(?=^[A-Z0-9. '-]{1,45}$)/i
在這個正則表達式是什麼?=^
意思?什麼是正則表達式中的子表達式?
?=
是一個積極的向前看
我不是故意挑剔,但當與圓括號一起使用時,它只是一個向前看:'(?=)'。 –
@MariusSchulz是的,你說得對,這與被問到的有關「?= ^」意思的問題有關。 * - 我也應該對'^'進行說明,但讓OP從文檔中讀取更多內容不會有什麼影響 – vol7ron
(?=)
是向前看,它放眼望去字符串中,看它是否沒有正式拍攝它
^
意味着它在開始處匹配相匹配輸入(例如,與字符串a test
,^test
不匹配,因爲它不以「測試」開始,即使它包含它)
總體而言,你的表情是說它具有^
開始和結束$
與存在於你的角色組[A-Z0-9. '-]
(不區分大小寫/i
)1-45 {1,45}
項目。在這種情況下,它在一個超前的事實意味着它不會捕獲任何東西(零長度匹配)。
你想要尋找的是前瞻'(?='。見https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions –