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. No write since last change (add ! to override)

    故障现象: 使用vim修改文件报错,系统提示如下: E37: No write since last change (add ! to override) 故障原因: 文件为只读文件,无法修改. 解决 ...

  2. 搭建django

    虚拟环境配置 pip install virtualenv 一般需要安装一个管理工具:pip install virtualenvwrapper-win 只有它可以使用workon 创建虚拟环境:mk ...

  3. PHP脚本命令行执行成功,CRON无法执行故障解决记录

    先来看看一个最简单的PHP文件(ip.php) <?php $myip = get_ip_cmd(); echo($myip); // get ip address function get_i ...

  4. flask更改已有的response

    今天遇到个问题,需要更改返回的response,但框架已经生成了一个response,所以需要直接更改. 试着找了找解决办法,最终解决方式如下: #下文中payload的类型是 # class Res ...

  5. JavaBean四个作用域范围

    使用 useBeans的scope属性可以用来指定javabean的作用范围 page //仅在当前页面有效 request //可以通过HttpRequest.getAttribute()方法取得J ...

  6. Java:Hashtable

    概要 前一章,我们学习了HashMap.这一章,我们对Hashtable进行学习.我们先对Hashtable有个整体认识,然后再学习它的源码,最后再通过实例来学会使用Hashtable.第1部分 Ha ...

  7. 使用jquery load遇到一个问题解决

    1.环境 动态加载页面后给页面中的控件动态赋值,赋完更新后一闪值就没了. 2.原因    load()方法是异步加载,页面没有加载完就开始赋值,导致情况出现. 3.解决   加载完成后赋值 $(&qu ...

  8. 【转】Linux中的EAGAIN含义

    在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中). 从字面上来看,是提示再试一次.这个错误经常出现在当应用程序进行一些非阻塞 ...

  9. 源码分析MySQL mysql_real_query函数

    目录 目录 1 1. 前言 1 2. 调用路径 2 3. MAX_PACKET_LENGTH宏 2 4. DBUG_RETURN宏 3 5. COM_QUERY枚举值 3 6. mysql_query ...

  10. [ 9.28 ]CF每日一题系列—— 940A规律构造

    Description: 输入a,b,x,给你a个0,b个1,你要给出一个组合,让这个组合里存在x位,使得这x为和其x+1位不相等 Solution: 因为肯定有一个正确的答案,所以钻了一下空子,贪心 ...