正则匹配电商url

今天偶然看到一道面试题,用正则表达式最大限度匹配电商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=多个数字字母以及.+

你可能感兴趣的:(正则匹配电商url)