依据B站小野森森老师的正则表达式的课程整顿的笔记
课程链接

本义

本义符号和转义字符

非凡转义字符

n 换行

r 回车

t 制表符 -> tab键 4个空格

字符串换行

办法三: 能够用反引号 \` 定义多行字符串

正则表达式

RegExp = regular expression

初体验

实例化形式

对象间接量

如果要应用变量,则必须是用实例化形式

留神

修饰符gim

表达式[]

[ ]

间断三位每一位字符是什么

区间写法

^符号

|或

元字符

元字符是正则应用的转义字符

w W

d D

s S

匹配一个空白字符

b B

.

能够匹配除了回车r和换行n的所有字符

量词

正则匹配的准则:

字符串从左到右, 顺次先匹配多, 再匹配少, 如果一旦匹配上就不回头匹配.

贪心匹配准则: 能匹配上多个,绝不匹配少个

n+

{1,正无穷}

n*

{0, 正无穷}

*号就是匹配n这个范畴内的任意字符所呈现的0次或屡次的字符串,

先匹配屡次的,匹配完屡次的之后,空字符算是0次,所以也能够.

n?

{0, 1}

n{x,y}

正则表达式中不要乱写空格

y不写 默认{1,正无穷} === n+

x=0,y不写 默认{0,正无穷} === n*

^n

匹配任何以n结尾的字符串,这个例子的后果错了,应该是['ab', 'ab']

n$

匹配任何以n结尾的字符串,

问题

查看字符串是否以abcd结尾和以abcd结尾

查看字符串是否以abcd结尾或以abcd结尾

查看字符串是否以abcd结尾和以abcd结尾 并且两头是数字

reg=/^abcd[d]+abcd$/也能够

匹配以138结尾的11位手机号码

a(?=n)

匹配前面紧接着指定字符串n的字符串a, 叫正向预查

a(?!n)

匹配前面紧接着的不是指定字符串n的字符串a, 也叫正向预查

xxxx xxyy

子表达式

(a) 括号里面包着的是子表达式

子表达式有记忆性能, 前面紧挨着的反向援用都会认为是匹配同一个字符

反向援用

1 指的是你反向援用第1个子表达式

n 指的是你反向援用第n个子表达式

xxyy

(?:n)

str.match会把子表达式也捕捉进去

捕捉分组

a , b, c 三个子表达式都捕捉

不捕捉分组

(?:a) 不让捕捉这个子表达式

正则对象属性

正则对象办法

reg.test(str)

reg.exec()

这个办法是机械式的循环

个性

须要晓得的景象

输入的数组中的index属性和reg.lastIndex属性的值保持一致,并且能够通过扭转reg.lastIndex的值来扭转index的值, 即批改匹配的地位

然而如果把lastIndex的值批改为不是3的倍数, 下一个index会变成大于lastIndex值的最小的3的倍数:

此时,在执行一次reg.exec(str), lastIndex会主动跟index同步变为9

str.match(reg)

手机号校验

出生日期校验

match与exec的区别

str.split(reg)

字符串宰割

String结构的对象的办法

str.toUpperCase()

str.toLowerCase()

str.toLocaleUpperCase()

str.toLocaleLowerCase()

针对一些比拟非凡的语言, 比方土耳其语等语言中有非凡的大小写字母,这些语言的大小写转化要应用locale

针对英文字母, 加locale与否都能实现大小写转换性能

str.charAt()

str.charCodeAt()

str.fromCharCode()

str.substr()

前闭合 后长度

str.substring()

前闭后开

valueOf和toString的比拟

1、toString 字符串 valueOf 返回本来的值

2、Date: toString 示意工夫的特有的字符串 value0f 13位毫秒工夫戳

3、数组: toString 数组元素用,宰割的字符串 value0f 数组本来的值

4、对象: toString 对象的类型字符串示意‘[object Object] ' value0f 对象本来的值

5、toString function通过[native code]辨别JS内置函数和自定义函数

6、toString接管一个参数-基数 radix value0f 没有参数

封装工具类函数

第一种

第二种

贪心模式和非贪心模式

默认是贪心模式, 加一个?变成非贪心模式

例子1

例子2

replace

他自身不具备全局匹配的能力

第一个参数: 要替换的字符串

第二个参数: 替换成的字符串

xxyy -> yyxx

办法一:

办法二:

js-plus-plus -> jsPlusPlus

肯定要打括号才是子表达式

jsPlusPlus -> js\_plus\_plus

aabbcc -> a$b$c$

如果要用$符号,应该写两个: $$

下面可看成 $1 $$ $2 $$ $3 $$

呈现0次或屡次

1000000000000 -> 1000,000,000,000

提醒: 把空换成逗号

匹配前面跟着的是1或多个 000 连着的 并且字符串是以他们结尾的 空, 把这个空变成逗号

模板替换

双大括号替换

肯定要记得写子表达式

模板替换(重要)

输入框不让输出 空格

至多6位

验证邮箱

留神点

语法当中存在的符号肯定要对它进行本义, 不然会报语法错误