今天偶然看到一道面試題嘉抓,用正則表達(dá)式最大限度匹配電商URL
要求:僅僅識別 tmall.com 以及 taobao.com 這兩個域名下的鏈接
效果圖如下
代碼如下
var str1 = "今天我淘到了一個寶貝,你也看一下感覺很適合你 https://detail.tmall.com/item.htm?id=577359445691&spm=a1z10.10649-b-s.0.0.335e225cy94dcW 思灌,種草的話后裸,下單吧!"
str1.match(/(https|http):\/\/[A-Za-z]+.((tmall.com)|(taobao.com))\/[A-Za-z]+.(htm|html)\?id=[0-9]+&spm=[a-zA-Z0-9.-]+/g)
正則解讀
/(https|http):\/\/[A-Za-z]+.((tmall.com)|(taobao.com))\/[A-Za-z]+.(htm|html)\?id=[0-9]+&spm=[a-zA-Z0-9.-]+/g
-
/正則內(nèi)容/g
表示全局匹配 -
(https|http)
匹配http或https -
:\/\/
匹配:// -
[A-Za-z]+
匹配多個大小寫字母 -
.
匹配. -
((tmall.com)|(taobao.com))
匹配tmall.com或taobao.com域名 -
\/
匹配/ -
[A-Za-z]+
匹配多個大小寫字母 -
.
匹配. -
(htm|html)
匹配htm或html -
\?
匹配? -
id=[0-9]+
匹配id=多個大小寫字母 -
&
匹配& -
spm=[a-zA-Z0-9.-]+
匹配spm=多個數(shù)字字母以及.+