Javascript正则表达式学习笔记

一、什么是正则?

正则就是规则,一种能够让计算机读懂的规则。正则最初的概念是由Unix的sed、grep等命令普及的,一个正则表达式是一个pattern(模式),它通常用来匹配符合某种规则的字符串。
举个例子,小B要办一个酒会,但是参加酒会的人必须符合以下几个规则,1、年龄在18-25岁,2、热爱生活和游戏。来参加酒会的人必须要满足这两个条件,这两个规则就相当于一个正则表达式,符合了这个正则表达式就等于说,ok,你被选中了,就是你了。

二、正则的写法

全称RegExp: var re = new RegExp();
简写:var re = //; //尽量不要为空

三、正则的规则

1、当正则需要传参的时候,一定要使用全称的写法
2、在引号内,如果要输出特殊字符,要多加一个\

var s = 'asd';
var re = new RegExp('\\w');
console.log(re.test(s))  // true

var re1 = new RegExp('\w');
console.log(re1.test(s))  // false

var re2 = /\w/;
console.log(re2.test(s))  // true

3、正则默认区分大小写,若不区分大小写,则应在正则最后加上小写" i "

eg:
var re = /\d/i;
var re = new RegExp('\\d','i');

4、正则默认匹配成功就结束,不会继续匹配,若要全部查找,要加标识g(全局匹配

eg:
var re = /\d/g;
var re = new RegExp('\\d','g');
四、方法
1、test:正则去匹配字符串,匹配成功返回true,失败false

写法:正则表达式.test(字符串)

var str = 'test'
var re = /\w/; // \w代表字符,有字符就能够匹配成功,当前匹配到了t
console.log(re.test(str))  // true
2、search:正则去匹配字符串,匹配成功返回位置,失败返-1

写法:字符串.search(正则)

var str = 'search';
var re = /a/;
console.log(str.search(re))  // 2
3、match:正则去匹配字符串,匹配成功返成功的数组,失败返null

写法:字符串.match(正则)

var str = 'asdaf7a8saxahsda9duasxa3';
var re = /\d/g;
console.log(str.match(re))  // [ '7', '8', '9', '3' ]
4、replace:正则去匹配字符串,匹配成功的字符去替换新的字符串

写法:字符串.replace(正则,新的字符)
第二个参数可以是字符串,也可以是回调函数

str.replace(re,function(s){
   函数的第一个参数就是匹配成功的字符
})
五、匹配子项

小括号(): 除了匹配子项的意思,还有分组的意思

var str = '2017-10-10';
var re = /(\d-)+/g;
str.replace(re, ($0) => {  // $0表示当前匹配到的元素
    console.log($0)  //依次打印 7-  0-
})

正则的整体叫做母亲,把左边第一个小括号里面的正则,叫做这个第一个子项(母亲的第一个孩子,第二个小括号就是第二个孩子)
整体:re = /(\d+)(-)/g;

var str = '2017-10-10';
var re = /(\d+)(-)/g;
str.replace(re, ($0, $1, $2) => {  // $0表示当前匹配到的元素
    // 第一个参数$0:母亲,即2017-或者10-
    // 第二个参数$1:第一个子项,即2017或者10
    // 第三个参数$2:第二个子项,即-
    console.log($0, $1, $2)  //依次打印2017-  2017  -  和 10-  10  -
})
六、字符类:一组相似的元素

[]中的整体代表一个字符

var str = 'abdc'
var re = /a[bef]d/; 
console.log(re.test(str))  // true

排除:^如果写在[]里面的话,代表排除的意思
范围:[a-d] a到d这个范围

var str = 'abdc'
var re = /a[a-z0-9A-Z]d/; 
console.log(re.test(str))  // true
七、常见转义字符

. 任意字符
. 真正的点
\n 换行
\r 制表
\t 回车
\s 空格
\S 非空格
\d 数字
\D非数字
\w 字符
\W 非字符
\b 独立的部分(起始,结束,空格)
\B 非独立的部分
字符:字母、数字、下划线三类都称为字符
\1 重复的第一个子项 var re = /(a)(b)(c)/1/2/; // /1代表a
\2 重复的第二个子项 var re = /(a)(b)(c)/1/2/; // //2代表b

八、量词:{}

{4,7} : 前面的字符最少出现4次,最多出现7次
{4,} : 最少出现4次
{4} : 正好出现4次
+ : 相当于{1,}
? : 0次或者1次 {0,1}
* : 至少出现0次 {0,}

九、其他

^ : 代表正则最开始的位置
$ : 代表正则结束的位置

var str = 'abdc'
var re = /^a.+c$/; 
console.log(re.test(str))  // true

| : 或的意思

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

推荐阅读更多精彩内容