一、创建正则对象:

1、构造函数RegExp创建正则对象

var pattern = new RegExp('s$'); //pattern匹配以s结尾的字符串

2、使用正则直接量

var pattern = /s$/; //建议这样写

二、正则表达式字符

1、反斜线\ 在正则表达式中表示转义序列

特殊符号:

^ $ . * + ? = ! : | \ / ( ) [ ] { }

如果想要在正则表达式中匹配它们,应该在他们前面加上反斜线,如:

var pattern = /\$/; //pattern匹配$符号

2、直接量字符

字符    匹配
\o     NUL字符(\u0000)
\t     制表符(\u0009)
\n     换行符(\u000A)
\v     垂直制表符(\u000B)
\f     换页符
\r     回车符
\xnn   由十六进制数nn指定的拉丁字符,例如:\x0A等价于\n
\uxxxx 由十六进制数xxxx指定的Unicode字符,例如:\u0009等价于\t
\cX    控制字符^X。例如:\cJ等价于换行符\n

3、字符类

字符         匹配
[...]       方括号内的任意字符
[^...]      非方括号内的任意字符
[0-9]       0-9之间的数字
[a-z]       小写的拉丁字母
[A-Z]       大写的拉丁字母
[0-9a-zA-Z] 数字和大小写拉丁字母

下面也属于字符类:

.    除换行符和其他Unicode行终止符之外的任意字符
\s   任意Unicode空白符
\S   任意非Unicode空白符
\d   任意ASCII码数字,等同于[0-9]
\D   任意非ASCII码数字的字符,等同于[^0-9]
\w   任意ASCII码单词字符,等同于[a-zA-Z0-9_]
\W   任意非ASCII数字,等同于[^a-zA-Z0-9_]
[\b] 在字符类中表示退格直接量

4、重复字符类

贪婪的重复字符

字符      匹配
{n,m}  前一项至少n次,但不能超过m次
{n,}   前一项至少n次
{n}    前一项恰好n次
?      前一项0次或1次,等价于{0,1}
+      前一项至少一次,等价于{1,}
*      前一项0次或多次,等价于{0,}

非贪婪的重复匹配只需在贪婪的重复字符后面加上一个?(问号),且问号后没有其他表达式字符,否则非贪婪匹配忽略。例:

var str = 'aaaaaa',
 str2 = 'aaaaaabc',
 pattern = /a+/,
 pattern2,
 pattern3;
    
 pattern.exec(str); //全部匹配
 
 pattern2 = /a+?/;
 pattern2.exec(str); //只匹配了字符串中str的第一个a
 
 pattern3 = /a+?bc/;
 pattern3.exec(str2); //全部匹配,匹配结果为aaaaaabc

5、选择,分组,引用

字符              含义 
| 表示或,用于分隔选择
() 子表达式(子模式),可以引用子模式匹配结果
(?:) 子表达式(子模式),可以引用子模式匹配结果,但是子模式匹配结果不出现在正则匹配结果集中
\n(n为数字) 引用对应的子模式匹配结果
6、位置字符
字符 匹配
^ 字符串的开头
$ 字符串的结尾
\b 位于\w(单词字符)与\W(非单词字符)的边界或位于一个ASCII单词字符与一个字符串的开头和结尾之间的边界
\B 非词语之间的位置
(?=p) 正前向声明,要求接下来的字符与模式p匹配,但是不包括匹配中的那些字符
(?!=p) 反前向声明,要求接下来的字符不与模式p匹配

例:

1 var url = 'vip.etao.com/youhui.htm?drawCredits',
 2 pattern = /\byouhui\b/,
3 pattern2 = /^vip\.etao\.com\/.+drawcredits$/i;
4
5 pattern.exec(url); //匹配youhui子串
6 pattern2.exec(url); //全部匹配url变量值 

三、正则对象标准,属性,及方法

1、标志

标志  含义 
g 全局匹配
i 不区分大小写
m 多行匹配

2、方法

exec     接受一个字符串参数,返回由完全匹配和子表达式匹配结果组成的数组 
test 接受一个字符串参数,返回boolean值
compile 编译正则表达式

3、属性

source     正则表达式的文本 
global 是否拥有全局搜索标志g
ignoreCase 是否拥有标志i
multiline 是否拥有标志m
lastIndex 搜索匹配的开始位置(可读写)

JavaScript正则表达式基础知识汇总的更多相关文章

  1. javascript 正则表达式基础知识汇总

    正则表达式:对字符串中的信息实现查找.替换和提取操作.(不支持注释和空白,必须写在一行内)正则表达式的创建:包含在一对斜杠之间的字符(直接量语法)例如:var pattern = /s$/;     ...

  2. javascript之正则表达式基础知识小结

    javascript之正则表达式基础知识小结,对于学习正则表达式的朋友是个不错的基础入门资料.   元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要 ...

  3. jquery基础知识汇总

    jquery基础知识汇总 一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQu ...

  4. 快速掌握JavaScript面试基础知识(三)

    译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...

  5. 快速掌握JavaScript面试基础知识(二)

    译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...

  6. 沉淀,再出发:Java基础知识汇总

    沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...

  7. javascript的基础知识及面向对象和原型属性

    自己总结一下javascript的基础知识,希望对大家有用,也希望大家来拍砖,毕竟是个人的理解啊 1.1 类型检查:typeof(验证数据类型是:string) var num = 123; cons ...

  8. JavaScript 正则表达式基础语法

    前言 正则表达式在人们的印象中可能是一堆无法理解的字符,但就是这些符号却实现了字符串的高效操作.通常的情况是,问题本身并不复杂,但没有正则表达式就成了大问题.javascript中的正则表达式作为相当 ...

  9. Scala学习笔记--正则表达式基础知识、如何在scala内使用

    正则表达式语法:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx 基础知识:正则表达式30分钟入门教程 http://www. ...

随机推荐

  1. 微信小程序官方文档

    开发手册: https://developers.weixin.qq.com/miniprogram/dev/api/network-file.html 管理后台: https://mp.weixin ...

  2. <摘录>cocos2d-x 从环境搭建到win32项目移植android平台

    软件:cocos2d-x-2.2.3:android-ndk-r9d:adt-bundle-windows-x86_64-20131030:python-2.7.6: 1安装配置python 安装没什 ...

  3. 解决eclipse中java代码注释变成乱码的问题

    Eclipse JAVA文件注释乱码将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclipse编码 ...

  4. E-R图样例

    基本知识 基本的ER模型包含三类元素:实体.关系.属性. 实体(Entities):实体是首要的数据对象,常用于表示一个人.地方.某样事物或某个事件.一个特定的实体被称为实体实例(entity ins ...

  5. zk选举过程

    1. 服务器启动时期的Leader选举 若进行Leader选举,则至少需要两台机器,这里选取3台机器组成的服务器集群为例.在集群初始化阶段,当有一台服务器Server1启动时,其单独无法进行和完成Le ...

  6. windows2012 IIS部署GeoTrust证书踩过的坑。

    系统:windows2012 环境:IIS8 在阿里云上买了GeoTrust证书, 按照说明下载证书到服务器,  导入证书, 给IIS站点部署https. 阿里云部署帮助文档:https://help ...

  7. jquery的一次点击实现

    1.项目中需要实现一个需求,第一个点击的时候允许弹出dialog对象框,第二次不允许,除非重新刷新页面 2.在js的click事件中定义一个标签属性:相当于设置一个全局变量 var auclot= ' ...

  8. CKFinder的_thumbs缓存文件夹

    <CKFinder2.0.2的使用与破解> 作者: 宓晨        说下背景,发下牢骚!        由于网站需要支持对图片的上传以及操作的管理,还有文字+图片的组合上传.问了一下同 ...

  9. iOS:2015年07月最新苹果IOS上架App Store商店步骤

    苹果官方在2015年05-06月开发者中心进行了改版,网上的APP Store上架大部分都不一样了,自己研究总结一下,一个最新的上架教程以备后用. 原文地址:http://www.16css.com/ ...

  10. 爬虫之多线程 多进程 自定义异步IO框架

    什么是进程? 进程是程序运行的实例,是系统进行资源分配和调度的一个独立单位,它包括独立的地址空间,资源以及1个或多个线程. 什么是线程? 线程可以看成是轻量级的进程,是CPU调度和分派的基本单位. 进 ...