總結了一下javascript正則表達式的內容。表格形式,一目瞭然。輔以Example圖形解釋。javascript
匹配開頭爲11N, 12N或1NNN,後面是-7-8個數字的電話號碼。java
推薦一個圖形化表示正則的工具
https://regexper.com正則表達式
將上個例子翻譯爲圖形化表示以下:數組
解釋一下這個正則的意思工具
/(?:([^:;\(\[]*):)?(.*)/
首先 (?:...)?(.*)
看最外邊的兩個括號,第一個是非捕獲型括號,? 號做用於這個括號。第二個括號是捕獲型的,而且匹配多個任意字符。測試
而後,([^:;([]*):
這是一個捕獲型括號和一個字符 : 號spa
[^:;([]*
捕獲型括號中又包含一個字符組([]) 與一個 * 號,字符組中匹配多個除了 ; ( [ 的字符翻譯
再來一個code
/(^\s*)|(\s*$)/g
用js實現一個電話號碼提取的方法。regexp
例如:」 1852145998 020-888-999845 測試 021 – 85421987, 19865754″獲得的結果應該是[1852145998, 020-888-999845 , 021 – 85421987, 19865754]
var str=" 1852145998 020-888-999845 測試 021 - 85421987, 19865754"; var reg=/(1\d+)|(0[0-9\s\-]+)/g; console.log(str.match(reg));
.test(字符串):返回一個布爾值,表示傳入的字符串是否匹配該正則(從lastIndex屬性指示的地方開始)
.exec(字符串):返回一個包含了匹配結果的數組(額外具備兩個屬性:input表示本次搜索的目標字符串,即傳入exec方法的參數;index表示匹配結果在目標字符串內的位置)或null(匹配不到)。即便正則添加了g選項,也要經過屢次調用同一正則對象的該方法來繼續搜索(每次搜索會從lastIndex屬性指示的地方繼續。若已完成搜索,則lastIndex會被自動置0)。若未添加g選項,則調用幾回都是同樣的結果。若未找到匹配項則返回null,且將正則對象的lastIndex自動置爲0
字符串.match()
字符串.search()
字符串.split()
字符串.replace()
更多能夠參考高設Regexp一章。