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 相关文章推荐
5个可以帮你理解JavaScript核心闭包和作用域的小例子
Oct 08 Javascript
Javascript 完美运动框架(逐行分析代码,让你轻松了运动的原理)
Jan 23 Javascript
jquery实现点击其他区域时隐藏下拉div和遮罩层的方法
Dec 23 Javascript
点击按钮出现60秒倒计时的简单js代码(推荐)
Jun 07 Javascript
bootstrapfileinput实现文件自动上传
Nov 08 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
Feb 23 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
Jul 13 Javascript
解决JavaScript layui 下拉框不显示的问题
Aug 14 Javascript
监听element-ui table滚动事件的方法
Mar 26 Javascript
leaflet加载geojson叠加显示功能代码
Feb 21 Javascript
Vant 在vue-cli 4.x中按需加载操作
Nov 05 Javascript
Ajax实现页面无刷新留言效果
Mar 24 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
Zerg基本策略
2020/03/14 星际争霸
php上的memcache和memcached两个pecl库
2010/03/29 PHP
隐性调用php程序的方法
2015/06/13 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
JavaScript判断两种格式的输入日期的正确性的代码
2007/03/25 Javascript
Prototype 工具函数 学习
2009/07/23 Javascript
利用jQuery 实现GridView异步排序、分页的代码
2010/02/06 Javascript
javascript delete 使用示例代码
2010/03/29 Javascript
Javascript中string转date示例代码
2013/11/01 Javascript
jQuery 和 CSS 的文本特效插件集锦
2014/12/12 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
当jquery ajax遇上401请求的解决方法
2016/05/19 Javascript
jquery实现拖动效果
2016/08/10 Javascript
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
vue.js学习之vue-cli定制脚手架详解
2017/07/02 Javascript
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
解决option标签selected=&quot;selected&quot;属性失效的问题
2017/11/06 Javascript
Angularjs渲染的 using 指令的星级评分系统示例
2017/11/09 Javascript
layui之select的option叠加问题的解决方法
2018/03/08 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
浅谈小程序 setData学问多
2019/02/20 Javascript
理解生产者消费者模型及在Python编程中的运用实例
2016/06/26 Python
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
python 阶乘累加和的实例
2019/02/01 Python
Django Python 获取请求头信息Content-Range的方法
2019/08/06 Python
Python依赖包整体迁移方法详解
2019/08/15 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
教师找工作推荐信
2013/11/23 职场文书
军训自我鉴定
2014/01/22 职场文书
个人优缺点自我评价
2014/01/27 职场文书
小学国庆节活动方案
2014/02/11 职场文书
师恩难忘教学反思
2014/04/27 职场文书
关于保护环境的建议书
2019/06/24 职场文书
一篇文章带你复习java知识点
2021/06/28 Java/Android