利用正则表达式提取固定字符之间的字符串
前言
在JS的正则零宽断言匹配中,只支持前瞻匹配,不支持后瞻。这就尴尬了,因为在业务当中,我们大多时候是知道了要目标数据的前后缀字符串,但是并不想连同前后缀一起获取。
为了模拟后瞻,我想,要不就用笨方法,先将前后缀字符串一同提取,然后再讲前后缀字符串一同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; } //转义影响正则的字符 function encodeReg(source) { return String(source).replace(/([.*+?^=!:${}()|[]/\])/g,'\$1'); }
使用:
var a = '让我们荡起双桨吧'; getInnerString(a, '让我们', '吧'); // ['双桨'] var b = '老总和不在办公室,有事请留言给李秘书'; getInnerString(b, '有事请留言给', ''); // ['李秘书']
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对积木网的支持。
js中使用正则表达式查找字母和数字的方法
废话不多说,先看下js中使用正则查找字母和数字的方法,具体代码如下所示:!DOCTYPEHTMLhtmlheadmetacharset="UTF-8"title/titlescripttype="text/javascript"window.onload=func
一个容易犯错的js手机号码验证正则表达式(推荐)
写一个简单的正则表达式,用来校验11位手机号码,开头允许是13、15、18,我一开始这样写:varreg=/^(13[0-9]{9})|(15[0-9]{9})|(18[0-9]{9})$/;运行发现,即使是1398
正则表达式进行页面表单验证功能
一般做到注册页面的时候,当用户填完信息,都需要对他们的信息进行验证,这就要用到正则表达式,具体看下面这个例子。效果图:(当用户填写的