2013-10-07 206 views
4

我想寫的正則表達式允許一些特殊字符,如#-.,它應該至少包含一個字母。我想了解以下的事情也:在正則表達式中,?= ^是什麼意思?

/(?=^[A-Z0-9. '-]{1,45}$)/i 

在這個正則表達式是什麼?=^意思?什麼是正則表達式中的子表達式?

+3

你想要尋找的是前瞻'(?='。見https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions –

回答

6

?=是一個積極的向前看

Read more on regex

+0

我不是故意挑剔,但當與圓括號一起使用時,它只是一個向前看:'(?=)'。 –

+0

@MariusSchulz是的,你說得對,這與被問到的有關「?= ^」意思的問題有關。 * - 我也應該對'^'進行說明,但讓OP從文檔中讀取更多內容不會有什麼影響 – vol7ron

8

(?=)是向前看,它放眼望去字符串中,看它是否沒有正式拍攝它

^意味着它在開始處匹配相匹配輸入(例如,與字符串a test,^test不匹配,因爲它不以「測試」開始,即使它包含它)

總體而言,你的表情是說它具有^開始和結束$與存在於你的角色組[A-Z0-9. '-](不區分大小寫/i)1-45 {1,45}項目。在這種情況下,它在一個超前的事實意味着它不會捕獲任何東西(零長度匹配)。

相關問題