今天偶然看到一道面試題,用正則表達(dá)式最大限度匹配電商URL
要求:僅僅識(shí)別 tmall.com 以及 taobao.com 這兩個(gè)域名下的鏈接
效果圖如下

image.png
代碼如下
var str1 = "今天我淘到了一個(gè)寶貝,你也看一下感覺很適合你 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]+匹配多個(gè)大小寫字母 -
.匹配. -
((tmall.com)|(taobao.com))匹配tmall.com或taobao.com域名 -
\/匹配/ -
[A-Za-z]+匹配多個(gè)大小寫字母 -
.匹配. -
(htm|html)匹配htm或html -
\?匹配? -
id=[0-9]+匹配id=多個(gè)大小寫字母 -
&匹配& -
spm=[a-zA-Z0-9.-]+匹配spm=多個(gè)數(shù)字字母以及.+