正则冷知识;分组捕获、replace()的用法...
1.var reg=/./; var reg=/\./的区别??
前者代表任意一个字符,后者代表这个字符串中得有一个.。
2.?的使用??
如果单独的一个字符串后面带? ,
var reg=/\d?/ ; /n?/ ; d?代表的意思是至少有0个和1个数字 ; n ? 代表0个或1个带n的字符 。
如果是量词+和x ,n{x}后带? 则会取消正则的贪婪性
var reg=/\d+?/ ;
var st="123hello"
console.log(reg.exec(st))
3.捕获
(1)普通捕获 exec() match()
普通捕获有懒惰性,给正则添加一个修饰符g可以解决,match()是将所有捕获的内容放在一个数组中并返回,match()就是对exec()的封装
(2)分组捕获 exec() match()
var reg=/(a)(b)/;
exec()和match()在非全局捕获下捕获到的是一样的,不仅捕获到大正则的内容,也捕获到分组内容;
exec()和match()在全局捕获下捕获到的是不一样的,exec()捕获到的是大正则和小分组,而match()捕获到的只有大正则
(3)分组捕获的优势 ???
a:可以提升优先级 b:可以捕获引用
\1代表与分组1中一样的内容 \2代表与分组2中一样的内容
分组的结果存在正则类RegExp的$number的属性下
\1与RegExp.$1都是分组引用
\1只能在正则表达式中使用,RegExp.$1可以在外面使用,且二者都是在捕获完成的条件下使用
(4)在捕获过程中怎样取消捕获分组中的内容???
在那个分组前加?:
var reg=/a(?:b)/;
var st="ab";
console.log(reg.exec(st))
4.replace()字符串的方法,用于替换,两个参数,第一个参数是被替换的,第二个参数是替换他的,返回值是替换它的新字符串,但是并没有改变原来的字符串
(1)如果第一个值是字符串的话,只改变一次;
(2)如果第一个值是正则的话,捕获一次改变一次;
(3)如果第二个参数是匿名函数,每捕获一次这个匿名函数都会执行一次,return的是什么,就替换成什么,这个匿名函数的arguments有三个元素 a:被替换的元素;b:索引; c:原字符串
正则冷知识;分组捕获、replace()的用法...的更多相关文章
- JS 正则中的命名捕获分组
假设你在一段陌生的代码中看到这样一个函数: function toLocalDate(date) { return date.replace(/(\d{2})-(\d{2})-(\d{4})/, &q ...
- 正则RegExp的懒惰性和贪婪性; 分组捕获;
1.正则的懒惰性??? 每次在它的方法exec中捕获的时候,只捕获第一次匹配的内容,而不往下捕获,我们把这种情况称为正则的懒惰性 且每一次捕获的位置都是从索引0开始 正则的实例对象上有一个lastin ...
- 前端不为人知的一面--前端冷知识集锦 前端已经被玩儿坏了!像console.log()可以向控制台输出图片
前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前 ...
- 前端不为人知的一面–前端冷知识集锦 原文地址(http://web.jobbole.com/83473/);
前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前 ...
- 转:前端冷知识(~~some fun , some useful)
前端不为人知的一面——前端冷知识集锦 前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Qu ...
- web 前端冷知识
前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前 ...
- codewars--js--vowels counting+js正则相关知识
问题描述: Return the number (count) of vowels in the given string. We will consider a, e, i, o, and u as ...
- Java提取文本文档中的所有网址(小案例介绍正则基础知识)
正则表达式基础以及Java中使用正则查找 定义: 正则表达式是一些用来匹配和处理文本的字符串 正则的基础(先大致了解下) 1. 正则表达式的作用 查找特定的信息(搜索) 替换一些文本(替换) 2. 正 ...
- python冷知识
目录 省略号也是对象 奇怪的字符串 and 和 or 的取值顺序 访问类中的私有方法 时有时无的切片异常 两次 return for 死循环 intern机制 省略号也是对象 在python中一切皆对 ...
随机推荐
- Java day1
1. 学习java,首先是jdk的安装,JDK是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+ ...
- [转]python中pandas库中DataFrame对行和列的操作使用方法
转自:http://blog.csdn.net/u011089523/article/details/60341016 用pandas中的DataFrame时选取行或列: import numpy a ...
- ubuntu python3和python2切换脚本
最近在ubuntu上开发较多,有些工具只能在python2运行,而开发又是在python3上做的开发,所以写个脚本方便在python2和python3之间切换. 切换成python2的文件usepy2 ...
- 2013-7-30 802.1X企业级加密
今天做了U9510的企业级加密标杆测试,写了企业级加密标杆设备的操作指南.最后做到server 2003却出了问题,peap能关联,但是TLS怎么都关联不上.用adb shell查看logcat日志, ...
- Markdown语法说明(转)
Markdown语法说明(转) Markdown创始人John Gruber的语法说明 附上本文链接 NOTE: This is Simplelified Chinese Edition Docume ...
- Faster R-CNN代码例子
主要参考文章:1,从编程实现角度学习Faster R-CNN(附极简实现) 经常是做到一半发现收敛情况不理想,然后又回去看看这篇文章的细节. 另外两篇: 2,Faster R-CNN学习总结 ...
- crossdomain.xml配置不当的利用和解决办法
00x1: 今天在无聊的日站中发现了一个flash小站,点进crossdomain.xml一看,震惊 本屌看到这个*就发觉事情不对 百度一下,这是一个老洞,配置不当能引起各种问题就算能远程加载恶意的s ...
- access数据库编号转换成统一3位数长度方法,不足3位前面补零
select C_CUN+Format(Val(NZ(C_LB)),"000") from LBM 这条SQL只能在access数据库中执行,因为sql不支持NZ函数,而且c_lb ...
- wordpress评论回复自动发邮件的功能
A.插件流,可以说WP强大的插件功能的确能省事不少. 插件的办法一般是两步:第一实现成功发邮件,第二时间评论自动回复,这就需要用到两个插件,一个是Configure SMTP,一个是Mail To C ...
- git 在本地拉取远程分支的代码(并不做提交操作)
1. git fetch 获取远程的所有分支 2. 在执行 git checkout -b local-branch-name origin/remote-branch 就可以将远程分支remote ...