美文网首页
Javascript正则表达式学习笔记

Javascript正则表达式学习笔记

作者: __Vivin | 来源:发表于2017-10-29 16:39 被阅读0次
一、什么是正则?

正则就是规则,一种能够让计算机读懂的规则。正则最初的概念是由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

相关文章

  • js高级(四)

    JavaScript高级第04天笔记 1.正则表达式概述 1.1什么是正则表达式 正则表达式( Regular E...

  • JavaScript正则表达式学习笔记(二) - 打怪升级

    本文接上篇,基础部分相对薄弱的同学请移步《JavaScript正则表达式学习笔记(一) - 理论基础》。上文介绍了...

  • JavaScript正则表达式

    JavaScript 正则表达式 @(笔记)[正则表达式] 第一章 课程简介 1-1 JS正则表达式简介及应用 课...

  • JavaScript学习笔记(五)

    慕课网JavaScript进阶篇第9章学习笔记 JavaScript进阶篇—第9章 JavaScript学习笔记(...

  • JavaScript学习笔记二

    JavaScript学习笔记二 个人学习笔记参考阮一峰的JavaScript教学学习笔记二是对学习笔记一的补充 J...

  • 正则笔记

    学习来源:腾讯课堂-Javascript正则表达式基础学习代码:https://github.com/GemmaY...

  • 慕课笔记-JavaScript正则表达式笔记

    JavaScript正则表达式笔记 概述 RegularExpression:安装某种规则匹配指定内容的单个字符串...

  • 学习笔记 正则表达式

    2021.01.19 北京海淀 -2℃ 小雪转晴 正则表达式学习笔记 说明:该笔记参考“菜鸟教程”网站正则表达式...

  • JavaScript学习笔记三

    JavaScript学习笔记三 个人学习笔记参考阮一峰的JavaScript教学类型转换,内存,深拷贝,关于内存的...

  • 正则表达式学习笔记

    正则表达式学习笔记 一篇记录了学习正则表达式的笔记。 1. 转义字符 在 HTMl 中转义字符以 & 符号开头,分...

网友评论

      本文标题:Javascript正则表达式学习笔记

      本文链接:https://www.haomeiwen.com/subject/thsypxtx.html