利用正則表達(dá)式我們可以很容易的匹配到一些所需的字符串,當(dāng)我們需要對(duì)匹配到的一些字符進(jìn)行處理時(shí),可以參考以下做法。
let str ="{"type":2,"tagName":"script","attributes":{"src":"http://code.jquery.com/js/jquery-latest.js","link ":"http://test.com/home/index/page.html"},"childNodes":[],"id":13}"
Q1:將字符串中的tagName替換成TagName ?
let reg = new RegExp ("tagName","g")
let newStr = str.replace(reg,"TagName ")
Q2 : 將兩個(gè)不同的字符串替換成一個(gè):http://code.jquery.com/js以及 http://test.com/index替換成 http://jianshu.com/js 和http://jianshu.com/index?
let url1 = "http://code.jquery.com", url2 = "http://test.com"
let reg = new RegExp(${url1}(/js)|${url2}(/index),"g")
let newStr = str.replace(reg,"http://jianshu.com"+"2")
Q3: 對(duì)正則匹配出來(lái)的值進(jìn)行處理?
let str1 = "{"type":2,"tagName":"script","attributes":{"src":"http://jianshu.com/js/jquery-latest.js","link ":"http://jianshu.com/index/page.html"},"childNodes":[],"id":13}" ;
let url3 = http://jianshu.com ;
//匹配出以u(píng)rl3開(kāi)頭 .js 和.html 結(jié)尾的字符,并刪除url3返回;
let regExp = new RegExp(${url3}(?!(\\.js|\\.html)).+?(\\.js|\\.html), "g")
let newStr = str1.replace(regRxp,replaeFun)
//replaeFun是一個(gè)函數(shù)方法,1){
let p = $1;
return p.replace(url3,"")
}