2 回答

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊
var s = 'src="http://圖片地址"';
var re = /src="([^"]*)"/;
s.match(re);
console.log(RegExp.$1);

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超6個(gè)贊
關(guān)于正則表達(dá)式可以看下司徒正美的文章:JavaScript 正則表達(dá)式
題主正則表達(dá)式中使用了“捕獲分組(分組的一種類(lèi)型,相對(duì)于非捕獲分組)”,所以匹配結(jié)果除了整個(gè)正則表達(dá)式的匹配內(nèi)容之外,還包括捕獲到的分組內(nèi)容,舉個(gè)例,看圖:
至于要取值,在匹配成功的情況下,match()
返回的結(jié)果是個(gè)數(shù)組,第 0 個(gè)元素是整個(gè)正則表達(dá)式的匹配內(nèi)容,往后依次是各個(gè)分組匹配的內(nèi)容(按括號(hào)先后順序),而匹配不成功的情況下,返回 null
,所以取值表達(dá)式可以這樣寫(xiě)
const value = (s.match(re) || [])[1];
如果 value
值為 undefined
則表示匹配不成功(成功的情況下就算沒(méi)有匹配的字符也會(huì)是空字符串而不會(huì)是 undefined
)。
添加回答
舉報(bào)