js笔记---RegExp对象

正则表达式(regular expression)是一种表达文本模式(即字符串结构)的方法,常常用作按照“给定模式”匹配文本的工具。

1、新建正则表达式有两种方法。
一种是使用字面量,以斜杠表示开始和结束。
var regex = / xyz /;

另一种是使用RegExp构造函数。两种等价
var regex = new RegExp( 'xyz' );

2、正则对象生成以后,有两种使用方式:
正则对象的方法:将字符串作为参数,比如 regex.test( string )。
字符串对象的方法:将正则对象作为参数,比如 string.match( regex )。

3、正则对象的属性分成两类。
一类是修饰符相关,返回一个布尔值,表示对应的修饰符是否设置。
** ignoreCase:返回一个布尔值,表示是否设置了i修饰符,该属性只读。
** global
:返回一个布尔值,表示是否设置了g修饰符,该属性只读。
** multiline**:返回一个布尔值,表示是否设置了m修饰符,该属性只读。

另一类是与修饰符无关的属性,主要是下面两个。
lastIndex:返回下一次开始搜索的位置。该属性可读写,但是只在设置了g修饰符时有意义
source:返回正则表达式的字符串形式(不包括反斜杠),该属性只读。

var r = / abc / igm ;
r.lastIndex // 0
r.source // "abc"

4、正则对象的test()返回一个布尔值,表示当前模式是否能匹配参数字符串。
/ cat /.test( 'cats and dogs' ) // true

如果正则表达式带有g修饰符,则每一次test方法都从上一次结束的位置开始向后匹配。
带有g修饰符时,可以通过正则对象的lastIndex属性指定开始搜索的位置。
var r= / x/ g;
var s=' _x_x ';
r.lastIndex // 0
r.test(s) // true
r.lastIndex // 2
r.test( s ) // true
r.lastIndex // 4
r.test( s ) // false

r.lastIndex = 4;
r.test( s ) // false

5、exec ( )可以返回匹配结果。
如果正则表示式包含圆括号(即要求“组匹配”),则返回的数组会包括多个元素。其中,第一个元素是整个匹配成功的结果,后面的元素就是圆括号对应的匹配成功的组。

var s = '_x_x';
var r = / _(x) / ;
r.exec( s ) // [ "_x", "x" ]

exec方法的返回数组还包含以下两个属性:
input:整个原字符串。
index:整个模式匹配成功的开始位置(从0开始)。
6、String.prototype.match( ) 字符串对象的match方法对字符串进行正则匹配,返回匹配结果。 如果正则表达式带有g修饰符,则该方法与正则对象的exec方法行为不同,会一次性返回所有匹配成功的结果。 设置正则表达式的lastIndex属性,对match方法无效,匹配总是从字符串的第一个字符开始。
String.prototype.search( ) 字符串对象的search方法,返回第一个满足条件的匹配结果在整个字符串中的位置。如果没有任何匹配,则返回-1。
**String.prototype.replace( ) **字符串对象的replace方法可以替换匹配的值。它接受两个参数,第一个是搜索模式,第二个是替换的内容。 **str.replace( search, replacement ) **
****搜索模式如果不加g修饰符,就替换第一个匹配成功的值
' aaa '.replace( 'a', 'b' ) // "baa"
'aaa'.replace( /a/,'b') // "baa"
'aaa'.replace( /a/g, 'b' ) // " bbb "
String.prototype.split( ) 字符串对象的split方法按照正则规则分割字符串,返回一个由分割后的各个部分组成的数组。

7、元字符:
1、点字符 ( . ) 匹配中间包含的任意一个字符的情况
2、位置字符( ^ $)分别表示字符串的开始位置结束位置 **
** ( | )
或字符
3、重复类({}) {n}恰好重复n次,{n, } 至少重复n次,{ n,m } 重复不少于n次,不多于m次

4、量词符 ? 问号表示某个模式出现0次或1次,等同于{ 0,1 }。【非贪婪模式】
* 星号表示某个模式出现0次或多次,等同于{ 0, }。
+ 加号表示某个模式出现1次或多次,等同于{ 1, }。【贪婪模式】

4.5 字符类【 】只有匹配其中一个就可以 如 [abc]
[^] 表示除了字符类中以外的其他字符都可以匹配 如/[^a]/ //匹配没有a的字符串
【 - 】连续的字符,-左右表示范围 如/[a-z]/ 匹配 a 到 z 26个小写字母
\ 转义符 如匹配到加号,要写出/1+1/

4.6 修饰符表示模式的附加规则,放在正则模式的最尾部。可以单个也可以多个一起使用
g (全局匹配) 第一次匹配成功后就停止匹配。正则模式含有g修饰符,每次都是从上一次匹配成功处,开始向后匹配。
i 表示正则对象忽略大小写
m 表示多行模式,会修改^和$的行为,识别换行符

4.7 预定义模式
** \d 匹配0-9之间的任一数字,相当于[0-9]。**
** \D 匹配所有0-9以外的字符,相当于[^0-9]。**
** \w 匹配任意的字母、数字和下划线,相当于[A-Za-z0-9_]。**
** \W 除所有字母、数字和下划线以外的字符,相当于[^A-Za-z0-9_]。**
** \s 匹配空格(包括制表符、空格符、断行符等),相等于[\t\r\n\v\f]。**
** \S 匹配非空格的字符,相当于[^\t\r\n\v\f]。**
** \b 匹配词的边界。**
** \B 匹配非词边界,即在词的内部。**

4,8 特殊字符
\cX 表示Ctrl-[X],其中的X是A-Z之中任一个英文字母,用来匹配控制字符。
[\b] 匹配退格键(U+0008),不要与\b混淆。
\n 匹配换行键。
\r 匹配回车键。
\t 匹配制表符tab(U+0009)。
\v 匹配垂直制表符(U+000B)。
\f 匹配换页符(U+000C)。
\0 匹配null字符(U+0000)。
\xhh 匹配一个以两位十六进制数表示的字符。
\uhhhh 匹配一个以四位十六进制数表示的unicode字符。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,529评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,015评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,409评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,385评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,387评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,466评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,880评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,528评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,727评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,528评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,602评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,302评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,873评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,890评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,132评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,777评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,310评论 2 342

推荐阅读更多精彩内容