js进阶正则表达式10-分组-多行匹配-正则对象的属性(小括号作用:分组,将小括号里面的东西看成一个整体,因为量词只对前一个字符有效)(多行匹配:m)(属性使用:reg.global)...
js进阶正则表达式10-分组-多行匹配-正则对象的属性(小括号作用:分组,将小括号里面的东西看成一个整体,因为量词只对前一个字符有效)(多行匹配:m)(属性使用:reg.global)
一、总结
1、小括号作用:分组,将小括号里面的东西看成一个整体,因为量词只对前一个字符有效
var reg2=/(td){2,4}/g //1、小括号作用,分组
2、var reg3=/^\d/gm //2、m多行匹配
var str2='1.第一章\n2.第二章\n3.第三章' //4、换行符
3、alert(reg.global) //3、reg的属性使用
二、js进阶正则表达式10-分组-多行匹配-正则对象的属性
RegExp 对象属性
- global RegExp 对象是否具有标志 g。
语法:RegExpObject.global
如果 g 标志被设置,则该属性为 true,否则为 false。
- ignoreCase RegExp 对象是否具有标志 i。
语法:RegExpObject.ignoreCase
如果设置了 "i" 标志,则返回 true,否则返回 false。
- multiline RegExp 对象是否具有标志 m。
语法:RegExpObject.multiline
如果 m 标志被设置,则该属性为 true,否则为 false。
- source 正则表达式的源文本。
RegExpObject.source
source 属性用于返回模式匹配所用的文本。
该文本不包括正则表达式直接量使用的定界符,也不包括标志 g、i、m。
- lastIndex 一个整数,标示开始下一次匹配的字符位置。
语法:RegExpObject.lastIndex
该属性存放一个整数,它声明的是上一次匹配文本之后的第一个字符的位置。多用于在一个字符串中进行多次匹配
上次匹配的结果是由方法 RegExp.exec() 和 RegExp.test() 找到的,它们都以 lastIndex 属性所指的位置作为下次检索的起始点。这样,就可以通过反复调用这两个方法来遍历一个字符串中的所有匹配文本。
不具有标志 g 和不表示全局模式的 RegExp 对象不能使用 lastIndex 属性。
RegExp 对象方法
- compile 编译正则表达式。
compile 方法将正则表达式转换为内部的格式,从而执行得更快。例如,这允许在循环中更有效地使用正则表达式。当重复使用相同的表达式时,编译过的正则表达式使执行加速。
- test 检索字符串中指定的值。返回 true 或 false。
语法:RegExpObject.test(string)
如果字符串 string 中含有与 RegExpObject 匹配的文本,则返回 true,否则返回 false。
- exec 检索字符串中指定的值。返回找到的值,并确定其位置。
如果 exec 方法没有找到匹配,将返回 null。如果找到匹配项,则 exec 方法返回一个数组
数组元素 0 包含了完整的匹配项,而元素 1 到 n 包含的是匹配项中出现的任意一个子匹配项。
除了数组元素和 length 属性之外,exec() 方法还返回两个属性。index 属性声明的是匹配文本的第一个字符的位置。input 属性则存放的是被检索的字符串 string。在调用非全局的 RegExp 对象的 exec() 方法时,返回的数组与调用方法 String.match() 返回的数组是相同的。
当 RegExpObject 是一个全局正则表达式时,exec() 会在 RegExpObject 的 lastIndex 属性指定的字符处开始检索字符串 string。当 exec() 找到了与表达式相匹配的文本时,在匹配后,它将把 RegExpObject 的 lastIndex 属性设置为匹配文本的最后一个字符的下一个位置。
三、代码
1 <!DOCTYPE html> 2 <html lang="zh-cn"> 3 <head> 4 <meta charset="utf-8"> 5 <title>课堂演示</title> 6 <style type="text/css"> 7 li{ 8 font-size: 20px; 9 width: 500px; 10 background: rgba(0,180,80,0.3); 11 padding: 10px; 12 margin: 10px; 13 } 14 </style> 15 </head> 16 <body> 17 <script type="text/javascript"> 18 /* 19 var str1='td tdd tddd tdddd tdtd tdtdtd tdtdtdtd' 20 var str2='1.第一章\n2.第二章\n3.第三章' //4、换行符 21 var reg1=/td{2,4}/g 22 var reg2=/(td){2,4}/g //1、小括号作用,分组 23 // var reg3=/^\d/gm //2、m多行匹配 24 var reg3=/\d/g 25 alert(str2.replace(reg3,'#')) 26 document.write('<ol>') 27 document.write('<li>'+'原字符串:'+'<br>'+str1+'<br>'+str2 28 +'<li>'+str1.match(reg1) 29 +'<li>'+str1.match(reg2) 30 +'<li>'+str2.replace(reg3,'#') 31 32 ) 33 document.write('</ol>') 34 */ 35 var reg=/HTML5/i 36 // alert(reg.global) //3、reg的属性使用 37 alert(reg.ignoreCase) 38 </script> 39 </body> 40 </html>
转载于:https://www.cnblogs.com/Renyi-Fan/p/9087199.html
js进阶正则表达式10-分组-多行匹配-正则对象的属性(小括号作用:分组,将小括号里面的东西看成一个整体,因为量词只对前一个字符有效)(多行匹配:m)(属性使用:reg.global)...相关推荐
- js转义字符 php 反转义6,js进阶正则表达式6转义字符(加\转义)(.符号)(|符号)...
js进阶正则表达式6转义字符(加\转义)(.符号)(|符号) 一.总结 转义字符:{} () / $ # & * . ....... //3.特殊字符,都要加转义\ 点符号:var reg2= ...
- js进阶正则表达式14验证邮编(input的pattern属性)(正则表达式加起^始$)
js进阶正则表达式14验证邮编(input的pattern属性)(正则表达式加起^始$) 一.总结 1.input的pattern属性:里面可以直接放正则表达式,<input type=&quo ...
- js进阶正则表达式15验证身份证号(|符号的使用:var reg=/^\d{17}[\d|X]$|^\d{15}$/)(str的方法substr)...
js进阶正则表达式15验证身份证号(|符号的使用:var reg=/^\d{17}[\d|X]$|^\d{15}$/)(str的方法substr) 一.总结 1.|符号的使用:var reg=/^\d ...
- js进阶正则表达式方括号(方括号作用)(js正则是在双正斜杠之中:/[a-z]/g)...
js进阶正则表达式方括号(方括号作用)(js正则是在双正斜杠之中:/[a-z]/g) 一.总结 方括号:范围 圆括号:选 大括号:数量 1.js正则是在双正斜杠之中: var reg2=/[a-z]/ ...
- DRG专业分组器-预分组在医院DRG付费政策执行过程中的作用(分组器+前置控制)支持中国所有使用DRG付费城市,准确率接近100%
本文中对本地分组简写为DRG-LOCAL. DRGs(Diagnosis Related Groups)的中文全称是"按疾病诊断相关分组",是将住院病人按照临床相似性以及资源消耗相 ...
- 10、正则表达式 (笔试题、语法规则、正则对象方法、正则实例属性、支持正则表达式的String对象的方法、贪婪匹配与非贪婪匹配)
正则表达式 目录 10.1 语法规则 10.1.1 创建方法 1.直接量 2.构造方法RegExp() 10.1.2 三个属性i,g,m 10.1.3 方括号 10.1.4 元字符 10.1.5 量词 ...
- JS进阶笔记(原型、继承、this指向、闭包、递归、正则表达式)
文章目录 1.构造函数.实例对象.原型对象三者之间的关系 2.原型链 2.1.JS成员查找机制 2.2.原型对象中的this指向 2.3.利用原型对象扩展内置对象方法 3.继承 3.1 call方法的 ...
- js匹配正则匹配手机号/固话/带括号区号固话
js匹配正则匹配手机号/固话/带括号区号固话 var test = document.getElementsByTagName('body')[0].outerHTML; var array =tes ...
- js 对一个字段去重_JS单行、多行文本字符去重和行去重
之前偶然看到一篇使用正则实现字符去重及多行去重的文章.感觉写的有点糙,而且性能也不够高,对新手的使用和理解都有一点难度.于是忍不住就搞了一个比较可爱的出来.而且不是一般的可爱,因为随着字符量的增长,其 ...
最新文章
- Freebsd 下用 sshguard 防止暴力破解 ssh 密码
- 依图又斩获10冠!AI芯片拿下创新技术大奖,朱珑再谈智能密度
- Android studio 签名使用转
- iOS开发 Xcode8中遇到的问题及改动
- union all怎么用在循环里_ai软件怎么使用?ai里基本功能怎么用?
- java程序二叉树_Java实现简单二叉树
- VTK:高亮选择动画用法实战
- camerax 自动聚焦_Android Camera-CameraView和CameraX使用
- ASP.NET MVC 入门1、简介
- Android studio3.5 SDK29项目开发笔记
- t–sql pl–sql_SQL Server –在T-SQL中使用最低的度量单位
- python自动发微信api_调用微信API发送微信消息python脚本
- Android下ping的简单工具类
- 计算百分比的分析函数
- 为选区添加描边_ps怎么给选区加上虚线描边
- 改革40年致敬创业者:有梦想谁都了不起!
- 推测的删除锁(Speculative Lock Elision):实现高并发多线程执行
- OpenVSwitch与OpenDayLight的连接过程
- 关机提示 ”task host window任务宿主正在执行关闭任务并且正在停止已运行的任务“我是这样解决的
- 深度学习如何应用在广告、推荐及搜索业务?阿里妈妈实践案例解读
热门文章
- linux 看rabbit版本,Linux下安装rabbitMq
- JavaScript的预解析(1)
- css设置按钮竖直方向居中_button内flex垂直居中竟然不居中的解决
- python接口自动化是什么_Python接口自动化测试(一)什么是接口?
- JAVA集合二:HashMap和Hashtable
- 网络层地址解析协议ARP
- UnityShader例子:边缘检测
- 2018ACM-ICPC南京赛区网络赛: J. Sum(积性函数前缀和)
- 决策单调性Ⅰ:四边形不等式(bzoj 1563: [NOI2009]诗人小G)
- vs2019配置opencv4.3