前言
在JS的正則零寬斷言匹配中,只支持前瞻匹配,不支持后瞻。這就尷尬了,因?yàn)樵跇I(yè)務(wù)當(dāng)中,我們大多時(shí)候是知道了要目標(biāo)數(shù)據(jù)的前后綴字符串,但是并不想連同前后綴一起獲取。
為了模擬后瞻,我想,要不就用笨方法,先將前后綴字符串一同提取,然后再講前后綴字符串一同replace為空字符串。于是就有了下面這個(gè)簡(jiǎn)單的方法,但確實(shí)很實(shí)用:
示例代碼如下
// 提取固定字符之間的字符串function getInnerString(source, prefix, postfix) { var regexp = new RegExp(encodeReg(prefix) + '.+' + encodeReg(postfix), 'gi'); var matches = String(source).match(regexp); var formatedMatches = _.map(matches, value => { return value .replace(prefix, '') .replace(postfix, ''); }); return formatedMatches;}//轉(zhuǎn)義影響正則的字符function encodeReg(source) { return String(source).replace(/([.*+?^=!:${}()|[/]///])/g,'//$1');}
使用:
var a = '讓我們蕩起雙槳吧';getInnerString(a, '讓我們', '吧'); // ['雙槳']var b = '老總和不在辦公室,有事請(qǐng)留言給李秘書';getInnerString(b, '有事請(qǐng)留言給', ''); // ['李秘書']
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)VEVB武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選