今天偶然看到一道面试题,用正则表达式最大限度匹配电商URL
要求:仅仅识别 tmall.com 以及 taobao.com 这两个域名下的链接
效果图如下
image.png
代码如下
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
-
/正则内容/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=多个数字字母以及.+
网友评论