8 回答

PingAnt
TA貢獻1條經(jīng)驗 獲得超1個贊
給定 regexp 為 /(^|&)name=value/
test "name=value" => true
test "&name=value" => true
test "%name=value" => false

lenmer
TA貢獻4條經(jīng)驗 獲得超4個贊
我也是今天才看到的,不好意思??!
說一下自己的愚見吧:
()? 標記一個子表達式的開始和結束位置;
^? 匹配輸入字符串的開始位置;
|?? 指明兩項之間的一個選擇;
沒什么問題。
如果不懂(^|&)我們把它分開來看;
字符串123abc&
單是^會匹配到什么?空吧。
單是&會匹配到什么?&吧。
那么^|&會匹配到什么?如果你用測試工具,會有兩個匹配:一個空,一個&;那么在js中來測試的話,結合上 | ,也就是什么都不會輸出,因為^已經(jīng)匹配到一個空了,自然不會再去匹配到&,如果你加一個a,變成(^a|&),同理,^a匹配不到吧,當然就匹配到&咯。
以上是我的個人見解,你可以多測試,實踐檢驗真理

ahao430
TA貢獻35條經(jīng)驗 獲得超41個贊
以xxx開頭,或者&xxx。應該是用于匹配url參數(shù)的,比如'a=1&b=2&c=3',查找某個key,可能在開頭,也可能在某個&后。

kevinZee
TA貢獻50條經(jīng)驗 獲得超39個贊
這個表示開頭匹配或者結尾匹配,因為沒有給定條件,所以匹配任意字符串都是true
var?reg?=?/(^a|b$)/;
比如我給定上面一個正則實例,他就可以匹配 【開頭是a 或者 結尾是b】 的字符串,并且因為括號分組,使用macth等方法可以拿到這個字符串的開頭或者結尾.
比如
"assdasdsdb".match(reg);???//?["a",?"a",?index:?0,?input:?"assdasdsdb"]
添加回答
舉報
0/150
提交
取消