正则冷知识;分组捕获、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中一切皆对 ...
随机推荐
- YAML 知识点
YAML:Ain't Markup Language 的缩写 YAML文件定义了一系列带有约束说明的任务,这些任务都是以任务名开始并且至少要包含script部分. 任务是由Runners接管并且由服务 ...
- 轻量应用服务器 访问jsp页面就直接下载的问题
本地localhost 运行可以 用自己的ip不行.出现这个问题实质原因就是Tomcat服务器就没有起到作用,运行不了jsp文件.这个是核心.去排查错误!网上查了好几天了根本没有解决我的我的问题. 1 ...
- 【剑指offer】链表第一个公共子结点
*思路: 先求得两个链表的长度,然后得到长度差diff,再先遍历长链表diff步后,再同时遍历两个链表并比较对象指针. /* public class ListNode { int val; List ...
- 关于Django部分
1 安装 执行pip安装即可 pip install Django 2 开启项目 3 项目新建后所在位置: 4 开启端口命令 python manage.py runserver 0.0.0.0:9 ...
- ssh免密钥之上厕所
ssh服务简单介绍 SSH协议框架中最主要的部分是三个协议: *传输层协议(The Transport Layer Protocol)提供服务器认证,数据机密性,信息完整性等的支持; *用户认证协议( ...
- 通过eclipse打开jdk native源码
1.下载 eclipse http://www.eclipse.org/downloads/eclipse-packages/ 建议下载 Eclipse IDE for Eclipse Committ ...
- solr字段压缩属性compressed新版本已经移除
solr字段压缩属性compressed新版本已经移除 可能是考虑到压缩意义不大还减少搜索效率,所以去掉了.而且好像没有替代属性.
- REST framwork之解析器
一 我们首先要知道解析器是什么以及他的功能: REST framework 包含许多内置的解析器类,允许接受各种媒体类型(media types)的请求.还支持自定义解析器,这使你可以灵活地设计 AP ...
- github 添加wiki
亲们支持我的新博客哦==>地址(以后更新会尽量在新博客更新,欢迎大家访问加入我的后宫w) ) 平时都是写readMe和docs的,一直眼瞎没有注意到有wiki这个功能 随便找一个写了wiki的看 ...
- TensorFlow NormLization
local_response_normalization local_response_normalization出现在论文”ImageNet Classification with deep Con ...