一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

利用正则表达式提取固定字符之间的字符串

时间:2017-05-07 编辑:简简单单 来源:一聚教程网

在JS的正则零宽断言匹配中,只支持前瞻匹配,不支持后瞻。这就尴尬了,因为在业务当中,我们大多时候是知道了要目标数据的前后缀字符串,但是并不想连同前后缀一起获取。

为了模拟后瞻,我想,要不就用笨方法,先将前后缀字符串一同提取,然后再讲前后缀字符串一同replace为空字符串。于是就有了下面这个简单的方法,但确实很实用:

示例代码如下

 

 代码如下复制代码

// 提取固定字符之间的字符串

functiongetInnerString(source, prefix, postfix) {

 varregexp =newRegExp(encodeReg(prefix) +'.+'+ encodeReg(postfix),'gi');

 varmatches = String(source).match(regexp);

 varformatedMatches = _.map(matches, value => {

  returnvalue

   .replace(prefix,'')

   .replace(postfix,'');

 });

 returnformatedMatches;

}

 

//转义影响正则的字符

functionencodeReg(source) {

 returnString(source).replace(/([.*+?^=!:${}()|[\]/\\])/g,'\\$1');

}

 

使用:

 

 代码如下复制代码

vara ='让我们荡起双桨吧'

getInnerString(a,'让我们','吧');// ['双桨']

 

varb ='老总和不在办公室,有事请留言给李秘书'

getInnerString(b,'有事请留言给','');// ['李秘书']

 

热门栏目