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 相关文章推荐
javascript生成/解析dom的CDATA类型的字段的代码
Apr 22 Javascript
原生javascript实现图片轮播效果代码
Sep 03 Javascript
类似天猫商品详情随浏览器移动的示例代码
Feb 27 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
Dec 01 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
Jan 26 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
Jul 28 Javascript
JQuery PHP图片在线裁剪实例
Jul 27 Javascript
JavaScript数组去重的几种方法效率测试
Oct 23 Javascript
详解JS中的柯里化(currying)
Aug 17 Javascript
JavaScript高阶教程之“==”隐藏下的类型转换
Apr 11 Javascript
浅谈Vue.use到底是什么鬼
Jan 21 Javascript
详谈Vue.js框架下main.js,App.vue,page/index.vue之间的区别
Aug 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
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
php图片加水印原理(超简单的实例代码)
2013/01/18 PHP
PHP和javascript常用正则表达式及用法实例
2014/07/01 PHP
php简单实现快速排序的方法
2015/04/04 PHP
Gambit vs CL BO3 第三场 2.13
2021/03/10 DOTA
javascript 表单验证常见正则
2009/09/28 Javascript
jquery.validate使用攻略 第五步 正则验证
2010/07/01 Javascript
JS对img标签进行优化使用onerror显示默认图像
2014/04/24 Javascript
jQuery实现的数值范围range2dslider选取插件特效多款代码分享
2015/08/27 Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
2016/03/25 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
js实现tab切换效果
2017/02/16 Javascript
jQuery插件echarts实现的单折线图效果示例【附demo源码下载】
2017/03/04 Javascript
vue.js开发环境搭建教程
2017/05/04 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
js实现图片局部放大效果详解
2019/03/18 Javascript
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
理论讲解python多进程并发编程
2018/02/09 Python
使用Python正则表达式操作文本数据的方法
2019/05/14 Python
python-django中的APPEND_SLASH实现方法
2019/06/21 Python
python yield和Generator函数用法详解
2020/02/10 Python
一款基于css3的动画按钮代码教程
2014/11/23 HTML / CSS
美国电视购物HSN官网:HSN
2016/09/07 全球购物
澳大利亚在线百货商店:Real Smart
2017/08/13 全球购物
英国手机零售商:Carphone Warehouse
2018/06/06 全球购物
医学专业大学生求职的自我评价
2013/11/27 职场文书
大学本科毕业生求职信范文
2013/12/18 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
信息技术课后反思
2014/04/27 职场文书
物流专业自荐信
2014/05/23 职场文书
暑期教师培训方案
2014/06/07 职场文书
Python常用配置文件ini、json、yaml读写总结
2021/07/09 Python
Docker 镜像介绍以及commit相关操作
2022/04/13 Servers