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 相关文章推荐
利用谷歌地图API获取点与点的距离的js代码
Oct 11 Javascript
jQuery中的$.ajax()方法应用
May 06 Javascript
JavaScript Function函数类型介绍
Apr 08 Javascript
JS实现动画兼容性的transition和transform实例分析
Dec 13 Javascript
jQuery模拟下拉框选择对应菜单的内容
Mar 07 Javascript
浅谈Angular 的变化检测的方法
Mar 01 Javascript
Vue.js单向绑定和双向绑定实例分析
Aug 14 Javascript
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
Sep 25 Javascript
详解三种方式解决vue中v-html元素中标签样式
Nov 22 Javascript
在JavaScript中使用严格模式(Strict Mode)
Jun 13 Javascript
微信小程序如何调用json数据接口并解析
Jun 29 Javascript
小程序实现分类页
Jul 12 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
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
PHP中strtr字符串替换用法详解
2014/11/26 PHP
thinkphp框架下实现登录、注册、找回密码功能
2016/04/06 PHP
php 输出缓冲 Output Control用法实例详解
2020/03/03 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
2010/03/04 Javascript
animate动画示例(泪奔的小孩)及stop和delay的使用
2013/05/06 Javascript
javascript封装的sqlite操作类实例
2015/07/17 Javascript
JavaScript模块规范之AMD规范和CMD规范
2015/10/27 Javascript
jQuery实现简单的点赞效果
2020/05/29 Javascript
JS操作COOKIE实现备忘记录的方法
2016/04/01 Javascript
JS获得多个同name 的input输入框的值的实现方法
2017/01/09 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
js实现适配不同的屏幕大小
2017/04/10 Javascript
ES6正则表达式的一些新功能总结
2017/05/09 Javascript
详解Vue路由开启keep-alive时的注意点
2017/06/20 Javascript
vue实现图片加载完成前的loading组件方法
2018/02/05 Javascript
JavaScript实现小球沿正弦曲线运动
2020/09/07 Javascript
Vue项目从webpack3.x升级webpack4不完全指南
2019/04/28 Javascript
JS内置对象和Math对象知识点详解
2020/04/03 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
简单了解python的一些位运算技巧
2019/07/13 Python
python虚拟环境完美部署教程
2019/08/06 Python
Pytorch 实现focal_loss 多类别和二分类示例
2020/01/14 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
Python建造者模式案例运行原理解析
2020/06/29 Python
详解css3 mask遮罩实现一些特效
2018/10/24 HTML / CSS
英国户外玩具儿童游乐设备网站:TP Toys(蹦床、攀爬框架、秋千、滑梯和游戏屋)
2018/04/09 全球购物
意大利火车票和铁路通行证专家:ItaliaRail
2019/01/22 全球购物
十佳青年个人事迹材料
2014/01/28 职场文书
揭牌仪式主持词
2014/03/19 职场文书
2014年幼儿园老师工作总结
2014/12/05 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书
学习师德师风的心得体会(2篇)
2019/10/08 职场文书
解读MySQL的客户端和服务端协议
2021/05/10 MySQL
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python