說明
先把去年文章搬過來,原賬号密碼忘了,雖然就寫了一篇
- 擷取兩特定符号之間文字
‘adc+1232-def+3-g+5-’.match(/([^±]+)(?=-)/g);//擷取±之間的内容 [“1232”, “3”, “5”]
- 擷取一個特定符号之間文字
(/!.*!/).exec(“test!user_mobile_default!b789cba9-80a6-4f89-b74b-dc7cda3ba5be”);
結果 :["!user_mobile_default!"]
(/!(.*)!/).exec(“test!user_mobile_default!b789cba9-80a6-4f89-b74b-dc7cda3ba5be”);
結果 :["!user_mobile_default!", “user_mobile_default”]
作為一個程式員,感覺自己是文盲。。。。。。
-------------------------------なんで,なんで--------手動分割一下--------------------------------------------------
(?=xxxxxx)
格式:"(?=xxxxx)",在被比對的字元串中,它對所處的 “縫隙” 或者 “兩頭” 附加的條件是:所在縫隙的右側,必須能夠比對上 xxxxx 這部分的表達式。因為它隻是在此作為這個縫隙上附加的條件,是以它并不影響後邊的表達式去真正比對這個縫隙之後的字元。這就類似 “/b”,本身不比對任何字元。"/b" 隻是将所在縫隙之前、之後的字元取來進行了一下判斷,不會影響後邊的表達式來真正的比對。
是以 1 裡面 (?=-) 意思是 ([^±]+) 的右側必須是 ‘-’,即比對所有不含±号的字元串(分組),并且最右字元為-号
()的作用:
(1). 在被修飾比對次數的時候,括号中的表達式可以作為整體被修飾
(2). 取比對結果的時候,括号中的表達式比對到的内容可以被單獨得到
是以 2 裡面()裡的内容是 “user_mobile_default”,結果一般預設是數組中第二個
參考:http://www.cnblogs.com/wzhiq896/p/6012212.html