js 一道题目引发的正则的学习
正则表达式中的特殊字符
字符 含意
\ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界。
-或-
对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*"。 ^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a"
$ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A"
* 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa
+ 匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa
? 匹配前面元字符0次或1次,/ba*/将匹配b,ba
(x) 匹配x保存x在名为$1...$9的变量中
x|y 匹配x或y
{n} 精确匹配n次
{n,} 匹配n次以上
{n,m} 匹配n-m次
[xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符)
[^xyz] 不匹配这个集合中的任何一个字符
[\b] 匹配一个退格符
\b 匹配一个单词的边界
\B 匹配一个单词的非边界
\cX 这儿,X是一个控制符,/\cM/匹配Ctrl-M
\d 匹配一个字数字符,/\d/ = /[0-9]/
\D 匹配一个非字数字符,/\D/ = /[^0-9]/
\n 匹配一个换行符
\r 匹配一个回车符
\s 匹配一个空白字符,包括\n,\r,\f,\t,\v等
\S 匹配一个非空白字符,等于/[^\n\f\r\t\v]/
\t 匹配一个制表符
\v 匹配一个重直制表符
\w 匹配一个可以组成单词的字符(alphanumeric,这是我的意译,含数字),包括下划线,如[\w]匹配"$5.98"中的5,等于[a-zA-Z0-9]
\W 匹配一个不可以组成单词的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。
1.regularexpression=/pattern/[switch] 关于正则后面的 switch: gi ,g ,i 的含义.
g: 全局匹配 i: 忽略大小写 gi: 全局匹配 + 忽略大小写
2.string.match() 和 RegExp.exec() 两个函数的区别

大都数情况下返回值是一样的 当pattern 后面的switch 为g 或者gi的时候 。
RegExp.exec() :返回的是第一个匹配的元素 加上所有括号内的元素(pattern中包含三个分组((\w+)、(\d)、(\d)))所以返回的数组为 : ["web2.0", "web", "2", "0"]。
string.match(): 这个方法规则是全局匹配,匹配所有符合规定规则的所有元素(并不显示pattern中包含的分组)。 所以返回的数组为 :["web2.0", "net2.0"]。
当pattern 后面的switch 为空的时候:
RegExp.exec() ,string.match() :返回的是第一个匹配的元素 加上所有括号内的元素(pattern中包含三个分组((\w+)、(\d)、(\d)))所以返回的数组为 : ["web2.0", "web", "2", "0"]。
看一下上面示例引申出的题目就很明显知道题目选项是 ?
What is outCome_exec[1] and outCome_matc[1]?
Choice A: true
Choice B: false
Choice C: null
Choice D: Web
Choice E: Web2.0
Choice F: undefined
Choice G: net2.0
当pattern 后面的switch 为g 或者gi的时候:
RegExp.exec(): 多次执行时,首个匹配值也会随着执行次数+1(比如第二次执行会过滤掉第一个匹配到的元素,返回第二个匹配到的值)。当第n次执行后没有匹配值则返回null;
string.match():返回匹配所有符合规定规则的所有元素。(并不显示pattern中包含的分组)

3. RegExp.test( str )检查当前字符是否匹配正则表达式,返回值为Boolean。 test方法每次只查找最多一个匹配,如果找到立马返回true ,找不到返回false。如果regExpObject 带有全局标识g,当test方法多次执行时,首个匹配值也会随着执行次数+1(见上面exec示例)。
3.1 string.search() 检查当前字符串是否能匹配正则表达式-1表示不能匹配 0表示匹配。
4.和string.replace() 方法结合使用删除特定字符(去除空格):

5.string.split()将字符串分割成数组

js 一道题目引发的正则的学习的更多相关文章
- L1-3 宇宙无敌加法器 - 令人激动的一道题目
L1-3 宇宙无敌加法器 - 令人激动的一道题目 感觉好久没有这么认真的做一道题了,今天看到一句话, 说是编程是一个工程型的工作,想要学好,"无他,唯手熟尔" 之前觉得自己笨,怀疑 ...
- 由SecureCRT引发的思考和学习
由SecureCRT引发的思考和学习 http://mp.weixin.qq.com/s?__biz=MzAxOTAzMDEwMA==&mid=2652500597&idx=1& ...
- 浅谈 js 字符串 trim 方法之正则篇
原文:浅谈 js 字符串 trim 方法之正则篇 关于 trim 其实没啥好说的,无非就是去除首位空格,对于现代浏览器来说只是简单的正则 /^\s+|\s+$/ 就可以搞定了.而且支持中文空格 等 ...
- js截取相应的域名----正则匹配法 和校验Url 正则表达式
js截取相应的域名----正则匹配法 和校验Url 正则表达式 用javascript截取相应的域名方法两种,供大家参考 1.方法1: [javascript] view plain copy fun ...
- JS稀奇古怪题目
JS稀奇古怪题目: 1.操作对象属性优先级高于普通赋值操作 var a = { n: 1 }; var b = a; //操作对象属性优先级高于普通赋值操作 a.x = a = { n: 2 }; c ...
- 一道原生js题目引发的思考(鼠标停留区块计时)
我瞎逛个啥论坛,发现了一个题目,于是本着练手的心态就开始写起来了,于是各种问题接踵而至,收获不小. 题目是这样的: Demo: mouseenter与mouseover区别demo 跨浏览器的区块计数 ...
- 一道codeforces题目引发的差分学习
Codeforces Round #688 (Div. 2) 题目:B. Suffix Operations 题意:给定一个长为n的数组a,你可以进行两种操作:1).后缀+1; 2)后缀-1: ...
- (转)js一道比较考验的题目
转载下别人曾经出过的一道面试题,此题是他出的一套前端面试题中的最后一题,用来考核面试者的JavaScript的综合能力,很可惜到目前为止的将近两年中,几乎没有人能够完全答对,并非多难只是因为大多面试者 ...
- 一道JS面试题引发的血案
刚入职新公司,属于公司萌新一枚,一天下午对着屏幕看代码架构时. BI项目组长给我看了一道面试别人的JS面试题. 虽然答对了,但把理由说错了,照样不及格. 话不多说,直接上题: var a = 1; s ...
随机推荐
- Linux--shell函数--08
1.函数介绍 为了避免代码的重复使用,我们一般通过函数编写代码块,而这一个代码块用来实现某种功能:且这个功能在后面的代码中会重复使用. 2.函数的语法格式: [ function ] 函数名 [ ( ...
- 使用HashSet实现不重复的随机数
package demo; import java.util.HashSet; import java.util.Random; public class RandomDemo { public st ...
- Bash数组-判断某个元素是否在数组内的几种方法
声明一个数组array,一个待测试元素var array=( element1 element2 element3 ) var="element1" 接下来用几种方法来分别测试va ...
- python json、pickle
文章部分转自:https://www.cnblogs.com/lincappu/p/8296078.html json:用于字符串和Python数据类型间进行转换pickle: 用于python特有的 ...
- 值栈ValueStack的原理与生命周期
1.ValueStack贯穿整个 Action 的生命周期,保存在request域中,所以ValueStack和request的生命周期一样.当Struts2接受一个请求时,会迅速创建ActionCo ...
- Deepin(Ubuntu)安装rpm软件包
1.首先安装alien和fakeroot这两个软件,alien可以将rpm转换为deb包. 在终端中输入命令 sudo apt-get install alien fakeroot 2.使用alien ...
- 35.ES6语法介绍——2019年12月24日
2019年12月24日16:22:24 2019年10月09日12:04:44 1. ES6介绍 1.1 新的 Javascript 语法标准 --2015年6月正式发布 --使用babel语法转换器 ...
- 【UOJ#207】共价大爷游长沙
题目链接 题目描述 火车司机出秦川,跳蚤国王下江南,共价大爷游长沙.每个周末,勤劳的共价大爷都会开车游历长沙市. 长沙市的交通线路可以抽象成为一个 \(n\) 个点 \(n−1\) 条边的无向图,点编 ...
- logback系列二:logback在项目中的应用
1.输出http日志 2.输出dubbo日志 3.输出interfacer日志 4.输出到access,remote,app等目录中
- Java——容器(Comparable)
[Comparable]