1.正则表达式的定义

描述字符模式的对象,JavaScript的RepExp类表示正则表达式

var pattern = new RegExp("s\("); <=> var pattern = /s\)/;

2.直接量字符

\o NUL字符

\t 制表符

\n 换行符

\v 垂直制表符

\f 换页符

\r 回车

3.字符类

[...] 方括号内的任意字符

[^...] 不在方括号内的任意字符

. 除换行符和其他Unicode行终止符之外的任意字符

\w 任何ASCII字符组成的单词,等价于[a-zA-Z0-9]

\W 任何非ASCII字符组成的单词,等价于[^a-zA-Z0-9]

\s 任何Unicode空白符

\S 任何非Unicode空白符

\d 任何ASCII数字,等价于[0-9]

\D 任何非ASCII数字,等价于[^0-9]

[\b] 退格直接量

4.重复

{n,m} 匹配前一项至少n次,但不超过m次

{n,} 匹配前一项n次或者更多次

{n} 匹配前一项n次

? 匹配前一项0次或者1次,等价于{0,1}

  •        匹配前一项至少1次或者更多次,等价于{1,}
  •        匹配前一项0次或者更多次,等价于{0,}

example:

/\d{2,4}/ //匹配2~4个数字

/\w{3}\d?/ //匹配3个单词加一个可选数字

/\s+java\s+/ //匹配java单词前后至少一个空格

/[^(]*/ //匹配以一个或者多个左括号开始的字符

5.非贪婪

重复为尽可能的多匹配,非贪婪模式是尽可能的少匹配

??

+?

*?

example:

{1,5}? //尽可能的匹配一个

6.选择分组引用

| 选择,匹配的是该符号左边的子表达式或者右边的子表达式

(...) 组合,将几个项组合为一个单元,这个单元可通过* + ? | 等符号加以修饰,而且记住和这个组合相匹配的字符串以供此后的引用使用

(?:...) 只组合,把项组合到一个单元,但不记忆与改组相匹配的字符

\n 和第n个分组第一次匹配的字符相匹配,组是圆括号中的子表达式(也可能是嵌套的),组索引是从左到右的左括号数,(?: 形式的分组不编码

7.锚字符

^ 匹配字符串的开头,在多行检索中匹配一行的开头

$ 匹配字符串的结尾,在多行检索中匹配一行的结尾

\b 匹配一个单词的边界,就是位于\w与\W之间的位置

\B 匹配非单词边界的位置

(?=p) 零宽正向先行断言,要求接下来的字符都与p匹配,但不能包括匹配p的那些字符

(?!=p) 零宽负向先行断言,要求接下来的字符都不与p匹配

8.修饰符

i 不区分大小写

g 全局匹配

m 多行匹配模式

9.用于模式匹配的String方法

search()

“javascript”.search(/script/i); 如果匹配则返回对应索引,否则返回-1

replace()

text.replace(/javascript/gi,"JavaScript"); 检索和替换

match()

"1 plus 2 equals 3".match(/\d+/g); 返回["1","2","3"]

split()

"1,2,3,4,5".split(/\s,\s/);返回["1","2","3","4","5"]

10.RegExp对象

RegExp第一个参数包含正则表达式的主体部分,也就是直接量中两条斜线之间的文本,不论是字符串直接量还是正则表达式都使用 \ 字符作为转义字符的前缀,

因此当给RegExp()传入一个字符串表述正则表达式时,必须将 \ 替换成 \

第二个参数是可选的,只能传 g i m,或者它们的组合

var zipcode = new RegExp("\d{5}","g");

RegExp属性

source:是一个只读字符串,包含正则表达式的文本

global:是一个只读的布尔值,用以说明这个正则表达式是否带有修饰符g

ignoreCase:是一个只读的布尔值,用以说明正则表达式是否带有修饰符i

multiline:是一个只读的布尔值,用以说明正则表达式是否带有修饰符m

lastIndex:是一个可读/写的整数,如果匹配模式带有g修饰符,这个属性存储在整个字符串的下一次检索的开始位置,会被exec(),test()方法用到

RegExp方法

exec()

执行字符串的匹配检索,类似String.match(),都会返回一个数组

test()

当调用exec方法返回不为null则调用test方法返回为true

正则表达式之javascript的更多相关文章

  1. 正则表达式(javascript)学习总结

    正则表达式在jquery.linux等随处可见,已经无孔不入.因此有必要对这个工具认真的学习一番.本着认真.严谨的态度,这次总结我花了近一个月的时间.但本文无任何创新之处,属一般性学习总结. 一.思考 ...

  2. JS正则表达式(JavaScript regular expression)

    RegExp直接量和对象的创建 就像字符串和数字一样,程序中每个取值相同的原始类型直接量均表示相同的值,这是显而易见的.程序运行时每次遇到对象直接量(初始化表达式)诸如{}和[]的时候都会创建新对象. ...

  3. 正则表达式基于JavaScript的入门详解

    关于正则表达式,和很多前辈聊起这个知识点时,他们的反馈都比聊其他技术谦逊,而和很多刚入门的程序员讨论时甚至会有觉得你看不起他. 的确,正则表达式从通常的应用来看,的确不难,比如电话,邮箱等验证.语法, ...

  4. 正则表达式(javascript)

    在开发过程中要要把一个css中的平移的x,y提取出来 ,正好把正则表达式学习了一下 'fsdfsdfsdf300pxfdsfd200pxfsdfsdf100px'  找出里面 px前面的数字: 经查资 ...

  5. 正则表达式java,javaScript应用

    dfa nfa 混合:捕获:断言:  正则引擎大体上可分为不同的两类:DFA和NFA,而NFA又基本上可以分为传统型NFA和POSIX NFA.   1.正则语法 捕获组: 没用()的字符都是一个一个 ...

  6. 常用的正则表达式归纳—JavaScript正则表达式

    来源:http://www.ido321.com/856.html 1.正则优先级 首先看一下正则表达式的优先级,下表从最高优先级到最低优先级列出各种正则表达式操作符的优先权顺序: 2.常用的正则表达 ...

  7. LeetCode10.正则表达式匹配 JavaScript

    给定一个字符串 (s) 和一个字符模式 (p).实现支持 '.' 和 '*' 的正则表达式匹配. '.' 匹配任意单个字符. '*' 匹配零个或多个前面的元素. 匹配应该覆盖整个字符串 (s) ,而不 ...

  8. 密码强度的正则表达式(JavaScript)总结

    简言 本文给出了两个密码强度的正则表达式方案,一个简单,一个更复杂和安全.并分别给出了两个方案的解析和测试程序.一般大家可以根据自己的项目的实际需要,自行定义自己的密码正则约定. 前言 用户注册时,都 ...

  9. 常用正则表达式整理[JavaScript]

    URL /^(http\:\/\/|https\:\/\/)(.{4,})$/ 18位身份证号 //前17位数字,末位支持X/^\d{17}\d{1}$|^\d{17}x{1}$/ 手机号 //11位 ...

随机推荐

  1. Python3基础知识之运算符

    题:今天学习python运算符,学完了回头看看与.net和java有什么异同. 目标:学习了解运算符,学会一般的应用. 相关知识: Python语言支持以下类型的运算符: 算术运算符 比较(关系)运算 ...

  2. 【APP测试(Android)】--安全测试

  3. 汇编语言计算Sin,Cos,Pow函数

    填了一下之前的坑.首先是一个题外话,在VS2015中默认汇编代码会使用SSE生成,如果想用FPU编译出FLD,FSTP这些指令,需要设置一下. 项目 >> 属性 >> C/C+ ...

  4. Photoshop制作仿等高线着色图

    起因是最近玩游戏The Long Dark,看到贴吧还是Steam上有人放了等高线图,看起来非常炫酷,于是想自己折腾下. 解包了游戏高度图 Matlab绘制如下 自己瞎写的量化+颜色映射如下,Shad ...

  5. python模块:xml.dom.minidom

    """Simple implementation of the Level 1 DOM. Namespaces and other minor Level 2 featu ...

  6. qhfl-6 购物车

    购物车中心 用户点击价格策略加入购物车,个人中心可以查看自己所有购物车中数据 在购物车中可以删除课程,还可以更新购物车中课程的价格策略 所以接口应该有四种请求方式, get,post,patch,de ...

  7. Papers | 超分辨 + 深度学习(未完待续)

    目录 1. SRCNN 1.1. Contribution 1.2. Inspiration 1.3. Network 1.3.1. Pre-processing 1.3.2. Patch extra ...

  8. jmeter+Jenkins持续集成(邮件通知)

    jmeter构建后,自送发送邮件到指定的邮箱,配置如下 1)Jenkins Location配置 jenkins首页->系统管理->系统配置页面 其中Jenkins URL有默认值,最好修 ...

  9. VS2017离线安装与Oracle数据库开发环境搭建

    记得之前使用VS2015打开老的MVC4项目,不能右键创建控制器和添加视图,让我非常不习惯!找遍了网络无果,最后只能回到VS2013,但我就是不喜欢用旧的VS,这是不是病... 1.将VS2017离线 ...

  10. [UWP]在UWP平台中使用Lottie动画

    最近QQ影音久违的更新了,因为记得QQ影音之前体验还算不错(FFmepg的事另说),我也第一时间去官网下载体验了一下,结果发现一些有趣的事情. 是的,你没看错,QQ影音主界面上这个动画效果是使用Lot ...