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之函数直接量(function(){})()
Jun 29 Javascript
Jquery 模板数据绑定插件的使用方法详解
Jul 08 Javascript
图片翻转效果具体实现代码
Jan 09 Javascript
jquery 选取方法都有哪些
May 18 Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
May 12 Javascript
JS获取地址栏参数的两种方法(简单实用)
Jun 14 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
Mar 13 Javascript
Three.js利用dat.GUI如何简化试验流程详解
Sep 26 Javascript
vue2.0+koa2+mongodb实现注册登录
Apr 10 Javascript
小程序云开发部署攻略(图文教程)
Oct 30 Javascript
详解如何在Vue项目中导出Excel
Apr 19 Javascript
vue-cli4项目开启eslint保存时自动格式问题
Jul 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
隐藏X-Space个人空间下方版权方法隐藏X-Space个人空间标题隐藏X-Space个人空间管理版权方法
2007/02/22 PHP
通过PHP修改Linux或Unix口令的方法分享
2012/01/30 PHP
php实现图片以base64显示的方法
2016/10/13 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
通过javascript设置css属性的代码
2009/12/28 Javascript
JavaScript 原型继承
2011/12/26 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
2014/05/02 Javascript
使用AngularJS 应用访问 Android 手机的图片库
2015/03/24 Javascript
jquery实现的动态回到顶部特效代码
2015/10/28 Javascript
高性能JavaScript循环语句和条件语句
2016/01/20 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
vue+eslint+vscode配置教程
2019/08/09 Javascript
[02:43]2018DOTA2亚洲邀请赛主赛事首日TOP5
2018/04/04 DOTA
Python中自定义函数的教程
2015/04/27 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
2017/11/29 Python
Python查看微信撤回消息代码
2018/06/07 Python
详解python Todo清单实战
2018/11/01 Python
详解Appium+Python之生成html测试报告
2019/01/04 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
Python实现转换图片背景颜色代码
2020/04/30 Python
python爬虫实现POST request payload形式的请求
2020/04/30 Python
如何利用python 读取配置文件
2021/01/06 Python
Python 求向量的余弦值操作
2021/03/04 Python
巴西在线鞋店:Shoestock
2017/10/28 全球购物
英国的潮牌鞋履服饰商店:size?
2019/03/26 全球购物
C语言面试题
2015/10/30 面试题
化学教师自荐信范文
2013/12/28 职场文书
村党支部书记承诺书
2014/05/29 职场文书
酒店管理求职信
2014/06/09 职场文书
2014年班务工作总结
2014/12/02 职场文书
js实现上传图片到服务器
2021/04/11 Javascript
pytorch中的model=model.to(device)使用说明
2021/05/24 Python
微信小程序调用python模型
2022/04/21 Python