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 常用关键字列表集合
Dec 04 Javascript
15 个 JavaScript Web UI 库
May 19 Javascript
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
Jan 01 Javascript
jqPlot 基于jquery的画图插件
Apr 26 Javascript
javascript在myeclipse中报错的解决方法
Oct 29 Javascript
addEventListener 的用法示例介绍
May 07 Javascript
前端程序员必须知道的高性能Javascript知识
Aug 24 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
Jul 05 Javascript
jQuery条件分页 代替离线查询(附代码)
Aug 17 jQuery
vue中的event bus非父子组件通信解析
Oct 27 Javascript
详解Vue Cli浏览器兼容性实践
Jun 08 Javascript
前端使用crypto.js进行加密的函数代码
Aug 16 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中的字符串函数
2006/10/09 PHP
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
2011/10/31 PHP
利用PHP扩展vld查看PHP opcode操作步骤
2013/03/04 PHP
PHP获取当前页面完整URL的实现代码
2013/06/10 PHP
PHP入门经历和学习过程分享
2014/04/11 PHP
详解 PHP加密解密字符串函数附源码下载
2015/12/18 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
分享两个手机访问pc网站自动跳转手机端网站代码
2020/12/24 Javascript
JS实现下拉菜单赋值到文本框的方法
2015/08/18 Javascript
基于JavaScript实现百叶窗动画效果不只单纯flas可以实现
2016/02/29 Javascript
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
2017/06/11 jQuery
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
讲解vue-router之什么是嵌套路由
2018/05/28 Javascript
详解使用 Node.js 开发简单的脚手架工具
2018/06/08 Javascript
webpack4.x开发环境配置详解
2018/08/04 Javascript
解决vue中修改export default中脚本报一大堆错的问题
2018/08/27 Javascript
Python 模板引擎的注入问题分析
2017/01/01 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
2020/03/18 Python
Python中实现输入一个整数的案例
2020/05/03 Python
Python如何在windows环境安装pip及rarfile
2020/06/15 Python
使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题
2016/06/28 HTML / CSS
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
多视角3D可旋转的HTML5 Logo动画
2016/03/02 HTML / CSS
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
Otticanet英国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/02/10 全球购物
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
经理管理专业毕业自荐书范文
2014/02/12 职场文书
总经理的岗位职责
2014/02/23 职场文书
《乞巧》教学反思
2014/02/27 职场文书
安全教育月活动总结
2014/05/05 职场文书
《莫泊桑拜师》教学反思
2016/02/22 职场文书
SpringDataJPA实体类关系映射配置方式
2021/12/06 Java/Android