鍍金池/ 問(wèn)答/網(wǎng)絡(luò)安全  HTML/ 想問(wèn)一下這個(gè)正則為什么無(wú)法匹配下面這字符串?

想問(wèn)一下這個(gè)正則為什么無(wú)法匹配下面這字符串?

var str = 'https://23.segment.com/?usename=David';
var pattern = /^(http|https|ftp|mailto):\/\/[0-9a-z\.]+([\/0-9a-z]|[-\_\?=])*([\.a-z]*)$/
console.log(pattern.exec(str));//null

為什么上面這段正則匹配不出來(lái),求大神指點(diǎn)

回答
編輯回答
短嘆

https://regex101.com/
自己試試看。。

2017年7月27日 21:38
編輯回答
孤慣

推薦一個(gè)在線(xiàn)測(cè)試正則的網(wǎng)站
記得選擇JavaScript。
可以先刪除后面的。一段段來(lái)分析。

一看字符串明顯有個(gè)David。而正則里沒(méi)有匹配大寫(xiě)字母的,當(dāng)然匹配不出來(lái)。
簡(jiǎn)單改變下,即可匹配。

^(http|https|ftp|mailto):\/\/[0-9a-z\.]+([\/0-9a-z]|[-\_\?=])*([\.a-zA-Z]*)$
2017年9月1日 16:45