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 相关文章推荐
return false;和e.preventDefault();的区别
Jul 11 Javascript
javascript实现动态标签云
Oct 16 Javascript
轻松实现Bootstrap图片轮播
Apr 20 Javascript
Javascript中匿名函数的调用与写法实例详解(多种)
Jan 26 Javascript
javascript绘制漂亮的心型线效果完整实例
Feb 02 Javascript
jquery点击展示与隐藏更多内容
Dec 03 Javascript
微信小程序获取微信运动步数的实例代码
Jul 20 Javascript
微信小程序 循环及嵌套循环的使用总结
Sep 26 Javascript
layui radio单选限制下一个radio单选的实例
Sep 03 Javascript
JS实现灯泡开关特效
Mar 30 Javascript
vue实现点击按钮切换背景颜色的示例代码
Jun 23 Javascript
React实现轮播效果
Aug 25 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
php 模拟POST|GET操作实现代码
2010/07/20 PHP
一组PHP加密解密函数分享
2014/06/05 PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
2016/08/11 PHP
js变量作用域及可访问性的探讨
2006/11/23 Javascript
Jquery下的26个实用小技巧(jQuery tips, tricks &amp; solutions)
2010/03/01 Javascript
JQuery for与each性能比较分析
2013/05/14 Javascript
javascript获取选中的文本的方法代码
2013/10/30 Javascript
查找页面中所有类为test的结点的方法
2014/03/28 Javascript
Javascript 实现复制(Copy)动作方法大全
2014/06/20 Javascript
使用 js+正则表达式为关键词添加链接
2014/11/11 Javascript
JavaScript返回网页中超链接数量的方法
2015/04/03 Javascript
angularjs实现文字上下无缝滚动特效代码
2016/09/04 Javascript
Bootstrap风格的WPF样式
2016/12/07 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
canvas知识总结
2017/01/25 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
JS改变页面颜色源码分享
2018/02/24 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
说说Vue.js中的functional函数化组件的使用
2019/02/12 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
2019/05/31 Javascript
vue或react项目生产环境去掉console.log的操作
2020/09/02 Javascript
vue实现图书管理系统
2020/12/29 Vue.js
python计算最小优先级队列代码分享
2013/12/18 Python
详解Django中的权限和组以及消息
2015/07/23 Python
Python列表list内建函数用法实例分析【insert、remove、index、pop等】
2017/07/24 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
Django 开发环境配置过程详解
2019/07/18 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
2019/08/13 Python
基于pandas向csv添加新的行和列
2020/05/25 Python
通过实例解析Python RPC实现原理及方法
2020/07/07 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
运动会稿件300字
2014/02/14 职场文书
教师暑期培训感言
2014/08/15 职场文书
稽核岗位职责
2015/02/10 职场文书
2016年第二十五次全国助残日活动总结
2016/04/01 职场文书