JavaScript正则表达式基础知识汇总
一、创建正则对象:
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正则表达式基础知识汇总的更多相关文章
- javascript 正则表达式基础知识汇总
正则表达式:对字符串中的信息实现查找.替换和提取操作.(不支持注释和空白,必须写在一行内)正则表达式的创建:包含在一对斜杠之间的字符(直接量语法)例如:var pattern = /s$/; ...
- javascript之正则表达式基础知识小结
javascript之正则表达式基础知识小结,对于学习正则表达式的朋友是个不错的基础入门资料. 元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要 ...
- jquery基础知识汇总
jquery基础知识汇总 一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQu ...
- 快速掌握JavaScript面试基础知识(三)
译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...
- 快速掌握JavaScript面试基础知识(二)
译者按: 总结了大量JavaScript基本知识点,很有用! 原文: The Definitive JavaScript Handbook for your next developer interv ...
- 沉淀,再出发:Java基础知识汇总
沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的 ...
- javascript的基础知识及面向对象和原型属性
自己总结一下javascript的基础知识,希望对大家有用,也希望大家来拍砖,毕竟是个人的理解啊 1.1 类型检查:typeof(验证数据类型是:string) var num = 123; cons ...
- JavaScript 正则表达式基础语法
前言 正则表达式在人们的印象中可能是一堆无法理解的字符,但就是这些符号却实现了字符串的高效操作.通常的情况是,问题本身并不复杂,但没有正则表达式就成了大问题.javascript中的正则表达式作为相当 ...
- Scala学习笔记--正则表达式基础知识、如何在scala内使用
正则表达式语法:https://msdn.microsoft.com/zh-cn/library/ae5bf541(VS.80).aspx 基础知识:正则表达式30分钟入门教程 http://www. ...
随机推荐
- 微信小程序官方文档
开发手册: https://developers.weixin.qq.com/miniprogram/dev/api/network-file.html 管理后台: https://mp.weixin ...
- 启用 Jenkins 持续构建 .NET 程序,关于配置nuget关键点
网上关于 Jenkins + net 的文章一大堆,这里只贴出 配置中的关键点, 第一步: 从官网下载 nuget.exe 安装包进行安装, 如果项目是用 vs2017 开发的 需要特别注意,nuge ...
- 如何释放 DB_RECOVERY_FILE_DEST_SIZE
转自原文 如何釋放 DB_RECOVERY_FILE_DEST_SIZE,有删减 oracle默認安裝之後,如何沒有手動設置歸檔路徑(alter system set log_archive_dest ...
- loadrunner的Analysis怎么生成word、ppt、html形式报告
原文:http://jingyan.baidu.com/article/03b2f78c1936d25ea237ae0f.html 在进行使用loadrunner中进行压力测试之后就会在Analysi ...
- activiti源码笔记对标的博客
http://blog.csdn.net/bluejoe2000/article/category/2812511/2 白乔专栏 http://blog.csdn.net/bluejoe2000/ar ...
- CSS margin-top 属性
1.margin-top 属性设置元素的上外边距. 注意:允许使用负值. 2.html 文件 <html> <head> <style type="text/c ...
- 客户端实现负载均衡:springCloud Ribbon的使用
Netfilx发布的负载均衡器,是一个基于http.tcp的客户端负载均衡工具,具有控制http.tcp客户端的行为,为ribbon配置服务提供者的地址后,ribbon就 可以经过springClou ...
- iOS: 适配启动图和图标
如何设置App的启动图,也就是Launch Image? Step1 1.点击Assets.xcassets 进入图片管理,然后右击,弹出"App Icons & Launch Im ...
- 如何Oracle查出一个用户具有的所有系统权限和对象权限
1. 系统权限 SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'LCAM_SYS_1216' UNION ALL SELECT * FROM DBA_SYS_ ...
- 关于js加密解密
有的时候有些网站的js用简单的eval混淆加密了.解密其实很简单的 解密JS的eval加密码的方式例如这段: 很多朋友以为这段代码是“加密”的,其实这也谈不上是加密,只能算是一种编码(Encode)或 ...