這實際上是我第一次遇到這個問題。 我試圖解析一個字符串的鍵值對分隔符可以是一個不同的字符。它可以在任何正則表達式測試程序中正常工作,但不在我當前的JS項目中。我已經發現,JS正則表達式工作不同,例如PHP。但我找不到要改變的東西。正則表達式工作在正則表達式測試器,但不在JS(錯誤匹配)
我的正則表達式如下:
[(\?|\&|\#|\;)]([^=]+)\=([^\&\#\;]+)
它應該符合:
#foo=bar#site=test
MATCH 1
1. [1-4] `foo`
2. [5-8] `bar`
MATCH 2
1. [9-13] `site`
2. [14-18] `test`
和JS是:
'#foo=bar#site=test'.match(/[(\?|\&|\#|\;)]([^=]+)\=([^\&\#\;]+)/g);
結果:
["#foo=bar", "#site=test"]
對於我來說,它看起來像分組工作不正常。 有沒有辦法解決這個問題?