[英]RegExp (^|\\?|&) in javascript
您能否幫助我理解此javascript RegExp:
cbreg = new RegExp('((^|\\?|&)' + cbkey + ')=([^&]+)')
// where cbkey is a string
我對(^|\\\\?|&)
部分感到困惑。 那是什么意思呢?
謝謝 !
首先,考慮到正則表達式是從字符串文字中創建的,雙反斜杠在生成的正則表達式中僅成為單個反斜杠(因為這就是字符串文字中轉義的方式):
(^|\?|&)
|
表示“或”,因此您具有:
^ - start of line, or
\? - a question mark, or
& - an ampersand
正則表達式中的問號本身具有特殊含義,但是轉義的問號與實際的問號匹配。
括號表示在匹配正則表達式的下一部分之前,它已與這些選項之一匹配。 如果沒有parens,則第三種選擇將包括表達式的下一部分(無論在cbkey
是cbkey
)。
|
表示“或”。 所以這意味着: ^
(行首)或?
或&
。
它意味着( |
)字符串( ^
)的開頭,文字問題( \\?
因為需要在正則表達式中轉義問號和\\\\?
因為反斜杠需要在字符串中轉義)或與號( &
)。
它搜索必須以字符“?”開頭(^ =必須以開頭)的程序段(括號中是一個程序段)。 或(| =或)字符'&'。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.