js关于正则的前后关联约束(前后预查)
最近研究了正则的前后预查,感觉好玩就分享一下,文章最后有意外的惊喜哦。
前置约束和后之约束都属于只匹配不捕获(非捕获族)。
前置约束用于判断所匹配的格式是否在另一个确定的格式之后,反知,后之约束用于判断所匹配的格式是否在另一个格式之前。
符号 | 描述 |
---|---|
?= | 前置约束-存在 |
?! | 前置约束-排除 |
?<= | 后置约束-存在 |
?<! | 后置约束-排除 |
1 、前置约束 ?=(存在)
比如 我们先想匹配red字符串,但是希望后面跟的是shiny的字符串。我们应该这样写 /(red)(?=shiny)/
/(red)(?=\sshiny)/=>'red shiny red black'
解释一下 /(red)(?=\sshiny)/ 为什么是\sshiny,因为red和shiny之间有一个空格所以加了一个\s 是空格匹配
2、前置约束?!(排除)
比如我们想匹配red字符串,但是后面不跟black字符串,那么就应该这样写/(red)(?!\sblack)/
/(red)(?!\sblack)/=>'red shiny red black'
3、后置约束?<=(存在)
比如我们现在想匹配red字符串,但是它的前面必须是shiny字符串,那么我们就应该这么写/(?<=\shiny\s)(red)/
/(?<=\shiny\s)(red)/=>'red shiny red black'
4、后置约束?<!(排除)
比如我们现想匹配red字符串,但是它的前面不能是black字符串,那么我们用该这样写/(?<=!black\s)red/
/(?<!\black\s)(red)/=>'red shiny red black red'
上面的示例是不是很简单,但是告诉大家一个很不好消息尤其是移动端开发者,有些浏览器不支持这种写法,我是在工作中遇见的,还有一个不得不吐槽的问题就是ios的safari不止"-"这个字符写正则的时候大伙们注意一下
转载于:https://juejin.im/post/5c20a8ccf265da616a47abef
js关于正则的前后关联约束(前后预查)相关推荐
- 正则判断 空格_js关于正则的前后关联约束(前后预查)
最近研究了正则的前后预查,感觉好玩就分享一下,文章最后有意外的惊喜哦. 前置约束和后之约束都属于只匹配不捕获(非捕获族). 前置约束用于判断所匹配的格式是否在另一个确定的格式之后,反知,后之约束用于判 ...
- js input 正则保留2位小数中文拼音输入问题 + 限制输入整数的方案
js input 正则保留2位小数中文拼音输入问题 + 限制输入整数的方案 problem 背景 element ui el-input组件 原生input事件 需求 限制输入框的输入 只允许输入数字 ...
- html正则表达式怎么写用户名非空,js通过正则匹配没有内容的空标签
js 如何正则匹配没有内容的空标签并移除掉? 例如 等等 正则 /]*?)?>\s*?/ig html=' '+ '\n '+ '\n'+ '\n '+ '\n '+ '\n '+ '\n'+ ...
- 正则匹配数字和字母php,用php与js实现正则匹配数字和字母组合的密码
这次给大家带来用php与js实现正则匹配数字和字母组合的密码,用php与js实现正则匹配数字和字母组合密码的注意事项有哪些,下面就是实战案例,一起来看一下. 本文实例讲述了正则匹配密码只能是数字和字母 ...
- js匹配正则匹配手机号/固话/带括号区号固话
js匹配正则匹配手机号/固话/带括号区号固话 var test = document.getElementsByTagName('body')[0].outerHTML; var array =tes ...
- php正则银行卡号,JS使用正则控制用户输入银行卡号及格式化
//js正则实现用户输入银行卡号的控制及格式化 function formatBankNo (BankNo){ if (BankNo.value == "") return; va ...
- JS常见正则方法整理
JS常见正则方法整理 目录 文章目录 前言 1. 使用测试方法 - `test` 2. 同时用多种模式匹配文字字符串 - `x|y` 3. 匹配时忽略大小写 - `/x/i` 4. 提取匹配项 - ` ...
- 在登录页面中js进行正则验证电话号码和邮箱地址,并使用ajax进行用户ID的数据库验证
本文说的是在登录页面中使用js进行正则验证并使用ajax进行用户ID的数据库验证,另外也加入键盘监听. 先看一下登录的jsp页面代码 <%@ page language="java&q ...
- JS 使用正则匹配字符串中所有大括号包含的数据,转换成数组形式
JS 使用正则匹配字符串中所有大括号包含的数据,转换成数组形式 .match(/{[^}{]*?}/g)
最新文章
- thinkbook14 2021版有两个显卡
- 湘潭计算机职业技术学校专业介绍,湘潭计算机职业技术学校介绍
- SCN Headroom与时光倒流到1988年的Oracle数据库
- 大促场景下云通信高可用、稳定性实战
- android 获取图片像素密度,android 获取屏幕的密度和像素 点
- 如何读懂并写出装逼的函数式代码 1
- uml 时序图_UML各种图总结:
- 韩顺平php视频笔记35 php运行过程
- 10大Go语言开源项目推荐
- ecshop ectouch 不支持html,ECTouch操作使用的常见问题整理(不定期更新)
- 利用AD13设计PCB的问题总结21-30
- c#锁定Excel工作表和单元格
- 李飞飞、吴恩达、Bengio等人的15大顶级深度学习课程(转)
- 基于MATLAB 的X-CT图像重建计算机仿真实验研究实验
- OpenGL学习笔记--配置VS环境
- java求亲密数,怎么写更好更快?
- 3.韦东山嵌入式学习笔记-烧写工具
- Jquery 模糊匹配ID
- DVFS--动态电压频率调整
- 人工智能时代,普通的我们如何提升自己的核心竞争力
热门文章
- 墨刀未能成功读取服务器数据,墨刀的使用
- php获取目录文件 排序输出,php实现对文件夹目录中的文件进行排序的方法
- 四十一、文件的物理结构(上)
- 自然语言处理-Word2Vec
- 弱监督语义分割--Object Region Mining with Adversarial Erasing
- 视频目标检测--Flow-Guided Feature Aggregation for Video Object Detection
- mysql存储引擎6_Mysql各种存储引擎对比总结
- Linux下的vim文本替换,Linux下文本的vim文本替换
- Linux怎么关闭ssh和ftp服务,linux ftp启用和停用及vsftpd安装 ssh 启用和停用命令及ssh的安装...
- 插件制作教程 php,typecho插件编写教程(二):写一个新插件