1. 正则表达式
我们学习正则表达式主要的是学习它的规则(语法),还有就是学习正则表达式在JS中的对象RegExp的属性和方法。
1.1 正则表达式定义:
它是用来操作字符串的一种逻辑公式,具体就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“特定字符串的规则”,用这个“规则”来对字符串进行一种过滤和选择。
1.2 正则表达式的特点:
1.2.1 具有非常强的灵活性、逻辑性和功能性
1.2.2 可以用极简单的方式迅速地达到对字符串的复杂控制。
1.2.3 由于能满足各种情况的组合,所以对于刚入门的人比较难懂。
1.3 正则表达式的规则
1.3.1 元字符:匹配的是符合要求的单个字符
. 匹配任何单个字符,除了换行
d 数字
D 非数字
w 数字 字母 下划线
W 非数字 字母 下划线
s 空白
S 非空白
换行
制表符(tab键)
1.3.2 范围匹配:匹配的是符合要求的单个字符
[]之间写所要字符所有的匹配要求
1.3.3 | 或者:匹配的是符合要求的单个字符
匹配满足|前的要求或者满足|后的要求的字符
1.3.4 量词:只修饰一个字符,对该字符做具体要求
a+:1个或多个a
a?:1个或0个a
a*:0个或多个a
a{x}:x个a
a{x,}:至少x个a
a{x,y}:x到y个a
1.3.5 开始结束:详细匹配
^a:以a开始
a$:以a结束
但是^在[]中的作用为将[]中的范围进行取反
1.3.6 () 内看成一个整体或者说看成一个字符
1.3.7 匹配汉字
汉字的取值范围:[u4e00-u9fa5]
1.3.8 参数
/表达式/i:忽略表达式匹配要求的大小写
/表达式/g:对表达式全局匹配
1.4 正则表达式的作用:
1.4.1 匹配
reg.test()正则表达式对象的方法,测试字符中是否有匹配的字符,有就返回true,没有就返回false。()中为被测试的字符串。
1.4.2 获取
str.match()字符串对象的方法,匹配字符串中是否有满足要求的字符,返回一个有满足要求的字符组成的数组,()中为正则表达式。
1.4.3 替换
str.replace()字符串对象的方法,将符合要求的字符替换成其他字符,replace有两个参数,第一个可以为字符串或者是正则表达式,第二个为字符串或者是函数。
1.4.4 分组提取
正则表达式中可以将()来组成一个整体,它还有另一层含义,就是将满足()内要求的字符分成一组,可以使用使用RegExp.$1的方式来提取满足第一个()内要求的一组字符组成的数组。前提为需要将字符串与正则表达式进行匹配过才能完成分组。