簡體   English   中英

javascript中的RegExp(^ | \\\\?||&)

[英]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,則第三種選擇將包括表達式的下一部分(無論在cbkeycbkey )。

| 表示“或”。 所以這意味着: ^ (行首)或? &

它意味着( | )字符串( ^ )的開頭,文字問題( \\?因為需要在正則表達式中轉義問號和\\\\?因為反斜杠需要在字符串中轉義)或與號( & )。

它搜索必須以字符“?”開頭(^ =必須以開頭)的程序段(括號中是一個程序段)。 或(| =或)字符'&'。

暫無
暫無

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

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