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 相关文章推荐
使用EXT实现无刷新动态调用股票信息
Nov 01 Javascript
js 操作符汇总
Nov 08 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
Nov 04 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
Jul 10 Javascript
详解VueJS应用中管理用户权限
Feb 02 Javascript
jQuery中图片展示插件highslide.js的简单dom
Apr 22 jQuery
uni-app如何页面传参数的几种方法总结
Apr 28 Javascript
vue实现导航菜单和编辑文本的示例代码
Jul 04 Javascript
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
Jul 31 Javascript
Javascript基于OOP实实现探测器功能代码实例
Aug 26 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
Nov 03 Javascript
JavaScript中document.activeELement焦点元素介绍
Nov 27 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
我的论坛源代码(三)
2006/10/09 PHP
PHP 采集获取指定网址的内容
2010/01/05 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
PHP支付宝当面付2.0代码
2018/12/21 PHP
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
JavaScript控制Session操作方法
2013/01/17 Javascript
公共js在页面底部加载的注意事项介绍
2013/07/18 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
详解 javascript中offsetleft属性的用法
2015/11/11 Javascript
js实现文本框输入文字个数限制代码
2015/12/25 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
2016/06/20 Javascript
详解vue-router和vue-cli以及组件之间的传值
2017/07/04 Javascript
vue.js项目 el-input 组件 监听回车键实现搜索功能示例
2018/08/25 Javascript
详解vue中使用微信jssdk
2019/04/19 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
2019/12/31 Javascript
js实现翻牌小游戏
2020/07/31 Javascript
[01:30]DOTA2上海特锦赛现场采访 Loda倾情献唱
2016/03/25 DOTA
[55:25]VGJ.T vs Optic Supermajor小组赛D组 BO3 第三场 6.3
2018/06/04 DOTA
Python Pandas对缺失值的处理方法
2019/09/27 Python
python生成器用法实例详解
2019/11/22 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
python内打印变量之%和f的实例
2020/02/19 Python
python 使用递归实现打印一个数字的每一位示例
2020/02/27 Python
佳能英国官方网站:Canon UK
2017/08/08 全球购物
Casadei卡萨蒂官网:意大利奢侈鞋履品牌
2017/10/28 全球购物
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
为数据库创建索引都需要注意些什么
2012/07/17 面试题
幼儿园美术教学反思
2014/01/31 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
学习雷锋月活动总结
2014/07/03 职场文书
医德医魂心得体会
2014/09/11 职场文书
学历证明样本
2015/06/16 职场文书
MySQL中EXPLAIN语句及用法
2022/05/20 MySQL