利用正則表達(dá)式提取固定字符之間的字符串
前言
在JS的正則零寬斷言匹配中,只支持前瞻匹配,不支持后瞻。這就尷尬了,因為在業(yè)務(wù)當(dāng)中,我們大多時候是知道了要目標(biāo)數(shù)據(jù)的前后綴字符串,但是并不想連同前后綴一起獲取。
為了模擬后瞻,我想,要不就用笨方法,先將前后綴字符串一同提取,然后再講前后綴字符串一同replace為空字符串。于是就有了下面這個簡單的方法,但確實很實用:
示例代碼如下
// 提取固定字符之間的字符串 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 = '老總和不在辦公室,有事請留言給李秘書'; getInnerString(b, '有事請留言給', ''); // ['李秘書']
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
js正則表達(dá)式 匹配兩個特定字符間的內(nèi)容示例
今天小編就為大家分享一篇js正則表達(dá)式 匹配兩個特定字符間的內(nèi)容示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07notepad++批量去掉或替換文本中的換行符、提取指定行或內(nèi)容(推薦)
這篇文章主要介紹了notepad++批量去掉或替換文本中的換行符、提取指定行或內(nèi)容,需要的朋友可以參考下2023-07-07詳解正則表達(dá)式后面不要包含指定的字符串內(nèi)容
這篇文章主要介紹了正則表達(dá)式后面不要包含指定的字符串內(nèi)容的相關(guān)知識,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下2019-04-04正則表達(dá)式匹配(URL、電話、手機、郵箱)的實例代碼
本文通過實例代碼給大家介紹了正則表達(dá)式匹配(URL、電話、手機、郵箱)的方法,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧2017-08-08只能是字母或數(shù)字或者是字母和數(shù)字的組合的正則previousSibling
只能是字母或數(shù)字或者是字母和數(shù)字的組合的正則previousSibling...2007-03-03