JS前向后瞻正则表达式定义与用法示例


Posted in Javascript onDecember 27, 2016

本文实例讲述了JS前向后瞻正则表达式定义与用法。分享给大家供大家参考,具体如下:

定义

x(?=y) 匹配'x'仅仅当'x'后面跟着'y'.这种叫做正向肯定查找。

比如,/Jack(?=Sprat)/会匹配到'Jack'仅仅当它后面跟着'Sprat'。/Jack(?=Sprat|Frost)/匹配‘Jack'仅仅当它后面跟着'Sprat'或者是‘Frost'。但是‘Sprat'和‘Frost'都不是匹配结果的一部分。

x(?!y) 匹配'x'仅仅当'x'后面不跟着'y',这个叫做正向否定查找。

比如,/\d+(?!\.)/匹配一个数字仅仅当这个数字后面没有跟小数点的时候。正则表达式/\d+(?!\.)/.exec("3.141")匹配‘141'但是不是‘3.141'

form https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions

前面这篇https://3water.com/article/84839.htm 解释的比较好懂。

例子:

<html>
<head> 
</head> 
<body>
  <input id="test" type="text" value="" />
  <input id="test" type="text" value="" />
  <input id="test" type="text" value="" />
  <input id="test" type="text" value="" />
  <input id="test" type="text" value="" />
  <script>
  var testStr = "windows 95"
  /* 1 - 不带子表达式匹配 */
  var testReg = /^windows .*$/
  var result = testStr.match(testReg);
  console.log("/^windows .*$/="+result) // /^windows .*$/=windows 95
  /* 2 - 带子表达式匹配 */
  var testReg = /^windows (.*)$/
  var result = testStr.match(testReg);
  console.log("/^windows (.*)$/="+result) // /^windows (.*)$/=windows 95,95
  /* 3 - 带子表达式,不记录其匹配结果 */
  var testReg = /^windows (?:.*)$/
  var result = testStr.match(testReg);
  console.log("/^windows (?:.*)$/="+result) // /^windows (?:.*)$/=windows 95
  /* 4 - 前瞻匹配,匹配位置,正匹配 */
  var testReg = /^windows (?=95)95$/
  var result = testStr.match(testReg);
  console.log("/^windows (?=.*)$/="+result) // /^windows (?=.*)$/=windows 95
  /* 5 - 前瞻匹配,匹配位置,负匹配 */
  var testStr = "windows me"
  var testReg = /^windows (?!95)me$/
  var result = testStr.match(testReg);
  console.log("/^windows (?!\d*)$/="+result) // /^windows (?!d*)$/=windows me
  </script>
</body>
</html>
Javascript 相关文章推荐
JScript的条件编译
May 29 Javascript
火狐textarea输入法的bug的触发及解决
Jul 24 Javascript
Javascript中arguments对象详解
Oct 22 Javascript
javascript基于牛顿迭代法实现求浮点数的平方根【递归原理】
Sep 28 Javascript
vue axios请求拦截实例代码
Mar 29 Javascript
vue实现在一个方法执行完后执行另一个方法的示例
Aug 25 Javascript
微信小程序文章详情页面实现代码
Sep 10 Javascript
js对象数组和对象的使用实例详解
Aug 27 Javascript
Vue开发中遇到的跨域问题及解决方法
Feb 11 Javascript
React组件设计模式之组合组件应用实例分析
Apr 29 Javascript
JavaScript实现移动端弹窗后禁止滚动
May 25 Javascript
解决Nuxt使用axios跨域问题
Jul 06 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
Dec 27 #Javascript
TypeScript学习之强制类型的转换
Dec 27 #Javascript
如何利用JQuery实现从底部回到顶部的功能
Dec 27 #Javascript
详解js的六大数据类型
Dec 27 #Javascript
javascript ASCII和Hex互转的实现方法
Dec 27 #Javascript
谈谈第三方App接入微信登录 解读
Dec 27 #Javascript
JavaScript trim 实现去除字符串首尾指定字符的简单方法
Dec 27 #Javascript
You might like
免费手机号码归属地API查询接口和PHP使用实例分享
2014/04/10 PHP
PHP使用json_encode函数时不转义中文的解决方法
2014/11/12 PHP
PHP常用日期加减计算方法实例小结
2018/07/31 PHP
Extjs学习笔记之二 初识Extjs之Form
2010/01/07 Javascript
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
2013/11/15 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
Angular设置title信息解决SEO方面存在问题
2016/08/19 Javascript
浅谈vue实现数据监听的函数 Object.defineProperty
2017/06/08 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
2018/09/28 Javascript
js实现查询商品案例
2020/07/22 Javascript
使用Python对IP进行转换的一些操作技巧小结
2015/11/09 Python
python自动裁剪图像代码分享
2017/11/25 Python
CentOS7下python3.7.0安装教程
2018/07/30 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
python爬虫 正则表达式解析
2019/09/28 Python
简单了解Django项目应用创建过程
2020/07/06 Python
关于HTML5语义标签的实践(blog页面)
2016/07/12 HTML / CSS
html5自定义video标签的海报与播放按钮功能
2019/12/04 HTML / CSS
Intimissimi德国网上商店:意大利知名内衣品牌
2018/04/03 全球购物
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
在C#中如何实现多态
2014/07/02 面试题
remote接口和home接口主要作用
2013/05/15 面试题
行政办公员自我评价分享
2013/12/14 职场文书
毕业生求职信
2014/06/10 职场文书
5s标语大全
2014/06/23 职场文书
弄虚作假心得体会
2014/09/10 职场文书
个人融资协议书范本两则
2014/10/15 职场文书
2014年建筑工作总结
2014/11/26 职场文书
2015年社区统计工作总结
2015/04/21 职场文书
2015年乡镇纪委工作总结
2015/05/26 职场文书
党员学习型组织心得体会
2019/06/21 职场文书
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏