腾讯欢乐捕鱼刷金币|腾讯欢乐捕鱼大战技巧

正則表達式提取指定字符之間字符串

2018-8-5 00:27| 作者: admin| 查看: 11612| 評論: 0|來自: 螞蟻部落

分享一段代碼實例,它實現提取指定字符之間字符串的功能。

代碼實例如下:

[JavaScript] 純文本查看 復制代碼运行代码
let encodeReg=(source)=>{
  return String(source).replace(/([.*+?^=!:${}()|[\]/\\])/g,'\\$1');
}
let getInnerString = (source, prefix, postfix) => {
  let regexp = new RegExp(encodeReg(prefix) + '.+' + encodeReg(postfix), 'gi');
  let matches = String(source).match(regexp);

  let  func=(elem)=>{
    return elem.replace(prefix, '').replace(postfix, '');
  }
  let arr=matches.map(func)
  return arr;
}
let str = "螞蟻部落歡迎您";
console.log(getInnerString(str,"螞","您"));

上面代碼實現了預期效果,下面介紹一下它的實現過程。

一.代碼注釋:

[JavaScript] 純文本查看 復制代碼
let encodeReg=(source)=>{
  return String(source).replace(/([.*+?^=!:${}()|[\]/\\])/g,'\\$1');
}

對字符串中可能影響正則表達式匹配的特殊字符進行轉義,比如"\"轉換為"\\"。

[JavaScript] 純文本查看 復制代碼
let getInnerString = (source, prefix, postfix) => {
  // code
}

此方法實現了獲取指定字符間字符串的功能,返回值是存儲指定字符之間字符串的數組。

[JavaScript] 純文本查看 復制代碼
let regexp = new RegExp(encodeReg(prefix) + '.+' + encodeReg(postfix), 'gi');

創建一個正則表達式對象,它能夠匹配兩個指定字符串和它們之間的字符串。

[JavaScript] 純文本查看 復制代碼
let matches = String(source).match(regexp);

進行匹配操作,返回值是一個數組。

[JavaScript] 純文本查看 復制代碼
let  func=(elem)=>{
  return elem.replace(prefix, '').replace(postfix, '');
}

將兩端的字符替換為空,只保留指定字符串之間的字符串。

[JavaScript] 純文本查看 復制代碼
let arr=matches.map(func)

對數組進行遍歷操作。

二.相關閱讀:

(1).replace()參閱正則表達式replace()一章節。

(2).RegExp()參閱正則表達式創建一章節。

(3).match()參閱正則表達式match()一章節。

(4).map()參閱JavaScript map()一章節。


鮮花

握手

雷人

路過

雞蛋

最新評論

返回頂部
腾讯欢乐捕鱼刷金币 天天捕鱼正版 中竟彩 快讯新闻赚钱 广西快乐双彩最新公告 河南11选5杀号技巧 新金光佛 北京赛车pk10 微信 支付宝赚钱方法 黑龙江22选5最新开奖结果查询 吉林11选5彩票