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 相关文章推荐
js模拟select下拉菜单控件的代码
May 08 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
Dec 28 Javascript
javascript数组输出的两种方式
Jan 13 Javascript
jquery专业的导航菜单特效代码分享
Aug 29 Javascript
JavaScript学习笔记之数组随机排序
Mar 23 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
May 16 Javascript
深入理解JavaScript单体内置对象
Jun 06 Javascript
JS作为值的函数用法示例
Jun 20 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
Oct 10 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
Nov 12 Javascript
在layui中layer弹出层点击事件无效的解决方法
Sep 05 Javascript
vue自动添加浏览器兼容前后缀操作
Aug 13 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
Cygwin中安装PHP方法步骤
2015/07/04 PHP
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
Zend Framework教程之Zend_Db_Table用法详解
2016/03/21 PHP
php strftime函数获取日期时间(switch用法)
2018/05/16 PHP
jQuery 1.0.4 - New Wave Javascript(js源文件)
2007/01/15 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
JavaScript将字符串转换为整数的方法
2015/04/14 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
jQuery仿京东商城楼梯式导航定位菜单
2016/07/25 Javascript
Vue0.1的过滤代码如何添加到Vue2.0直接使用
2017/08/23 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
[41:17]完美世界DOTA2联赛PWL S3 access vs CPG 第二场 12.13
2020/12/17 DOTA
Python实现XML文件解析的示例代码
2018/02/05 Python
使用tensorflow实现线性svm
2018/09/07 Python
Python离线安装PIL 模块的方法
2019/01/08 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
TensorFlow tf.nn.conv2d实现卷积的方式
2020/01/03 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
css3media响应式布局实例
2016/07/08 HTML / CSS
英国最大的邮寄种子和植物公司:Thompson & Morgan
2017/09/21 全球购物
自荐信不宜过于夸大
2013/11/06 职场文书
法学毕业生自荐信
2013/11/13 职场文书
党校个人自我鉴定范文
2014/03/28 职场文书
大学学风建设方案
2014/05/04 职场文书
好书伴我成长演讲稿
2014/05/14 职场文书
社区志愿者培训方案
2014/06/10 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
如何写早恋检讨书
2014/09/10 职场文书
毕业生就业推荐表导师评语
2014/12/31 职场文书
开会迟到检讨书范文
2015/05/06 职场文书
写作技巧:怎样写好一份优秀工作总结?
2019/08/14 职场文书
Python基础之操作MySQL数据库
2021/05/06 Python
Python 如何利用ffmpeg 处理视频素材
2021/11/27 Python