正则
regular 正则
expression 表达式
RegExp 正则表达式
pattern 模式
flag 标识
match 匹配
正则表达式(regular expression 缩写为RegExp)。
是一种对文本字符串进行验证,格式化的非常强大的工具。使用正则表达式可以轻松的识别和操作文本,从而节省大量的编程时间,列如验证用户的输入的电话,号码,身份证号,电子邮件,QQ号等是否符合正确格式
正则基本语法:
var reg=/patten/flage;
构造函数方式创建
var reg =new RegExp(patten,flage);
pattern(模式)部分即任何简单或复杂的正则表达式。包含是字符,先字符,分组,查找及反响应用等等。
flags(标识),每个正则都有一个或多个flags
g全局模式,既不会在发现第一个匹配项时停止,i区分大小写模式
m多行模式,即在到达一行文本末尾,还会继续查找下一行是否在匹配的项
一。元字符
. 除了换行符外的任何字符
$ 字符串的结尾
^ 脱字符,字符串的开头
\ 在字面意义和特殊意义之间切换
* 匹配前一项出现零次或一次,等价于{0,}
+ 匹配前一项出现一次或多次,等价于{1,}
? 匹配前一项出现0次或1次,等价于{0,1}
\s 任何一个空白字符(\f \n \r \t \v)
\S 非空白字符
\f 换页符
\r 回车符
\t 制表符
\d 0-9任意数字,相当于【0-9】
\D 任何非数字
\w 任何字母,数字及下划线
\W 出数字,字母及下划线以外的其他字符
{n} 前面的字符正好出现n次,n代表数字
{n,} 前面的字符至少出现n次,
{n,m} 前面的字符出现n-m次a{1,100}
[abcd] 与[ ]中任何字符匹配的字符集
[^abcd] 与[ ]中任何字符都不匹配的字符集
[ A-Z ] 与[ ]中的字符串范围匹配的字符集
()+ 一个组,即将括号中的作为一个整体
x|y x或者y。优先匹配左边,左边能匹配上,右边就不匹配。
字符串和正则有关的方法
math()查找找到一个或多个正则表达式的匹配。有就返回查找的结果,没有就是null
语法:string.match(reg)
Search() 查找与正则表达式相匹配的值 检索不到返回-1 检索到了 返回查找的字符首次在字符串中的位置
语法: string.search(reg)
字符串检素 分两种结果
第一种查找型 第二种是部捕获型,,分两种
第一是捕获型首次出现的。
第二次是捕获所有的/g。
replace()在字符串中查找匹配的字串,并替换与正则表达式匹配的字串
如果检索到返回替换后的新字符串 如果没有检测到 返回字符串。
语法:string.replace(reg)
注意的
1,字符串中的,在正则中如果就代表一个,需要转义\.
/./代表任意一个字符 /\./代表一个.
正则对象的两个方法
test() 检索字符串中指定的值 返回true或false、
语法:reg.test(str) 查找
exec() 检索字符串中指定的值。返回时一个数组,有找到的值并确定起位置找不到位置找不到返回null
语法:reg.exed(string) 捕获
2,
1,正则的性质
正则在捕获的时候,当第一次捕获成功了,就直接返回,不在向下捕获,这就叫做正则的懒惰性
解决正则的懒惰型
在正则上加修饰符/g
2,正则的贪婪型
/\d+/取捕获一个字符串中的数字他会进可能的多的捕获全部符合条件的叫正则的贪婪性。
解决正则的贪婪性/\d/ +代表1个或多个数字?代表0个或一个
在+后面跟一个?/\d+?
分组捕获()这是分组捕获的标志 将大正则分组成几个小正则中\1代表第一个分组 \2代表第二个分组
比如 /(a)(b)\2\1/ 代表的abab 这个规则
在分组捕获中
结果即返回了大正则的捕获结果,也返回了小正则的捕获结果
如果不想捕获某一个分组中的内容 正则在对应的分组中的前面加上?:就可以了同时分组引用(\1\2)也失效了
一旦分组捕获成功 在正则的类上会给$1$2等赋值
RegExp.$1 也是分组引用 在正则外起作用
\1也是分组引用 只能在正则外起作用
字符串和正则有关的方法
math()查找找到一个或多个正则表达式的匹配。有就返回查找的结果,没有就是null
语法:string.match(reg)
Search() 查找与正则表达式相匹配的值 检索不到返回-1 检索到了 返回查找的字符首次在字符串中的位置
语法: string.search(reg)
字符串检素 分两种结果
第一种查找型 第二种是部捕获型,,分两种
第一是捕获型首次出现的。
第二次是捕获所有的/g。
replace()在字符串中查找匹配的字串,并替换与正则表达式匹配的字串
如果检索到返回替换后的新字符串 如果没有检测到 返回字符串。
语法:string.replace(reg)
注意的
1,字符串中的,在正则中如果就代表一个,需要转义\.
/./代表任意一个字符 /\./代表一个.
正则对象的两个方法
test() 检索字符串中指定的值 返回true或false、
语法:reg.test(str) 查找
exec() 检索字符串中指定的值。返回时一个数组,有找到的值并确定起位置找不到位置找不到返回null
语法:reg.exed(string) 捕获
2,
1,正则的性质
正则在捕获的时候,当第一次捕获成功了,就直接返回,不在向下捕获,这就叫做正则的懒惰性
解决正则的懒惰型
在正则上加修饰符/g
2,正则的贪婪型
/\d+/取捕获一个字符串中的数字他会进可能的多的捕获全部符合条件的叫正则的贪婪性。
解决正则的贪婪性/\d/ +代表1个或多个数字?代表0个或一个
在+后面跟一个?/\d+?
分组捕获()这是分组捕获的标志 将大正则分组成几个小正则中\1代表第一个分组 \2代表第二个分组
比如 /(a)(b)\2\1/ 代表的abab 这个规则
在分组捕获中
结果即返回了大正则的捕获结果,也返回了小正则的捕获结果
如果不想捕获某一个分组中的内容 正则在对应的分组中的前面加上?:就可以了同时分组引用(\1\2)也失效了
一旦分组捕获成功 在正则的类上会给$1$2等赋值
RegExp.$1 也是分组引用 在正则外起作用
\1也是分组引用 只能在正则外起作用
字符串和正则有关的方法
math()查找找到一个或多个正则表达式的匹配。有就返回查找的结果,没有就是null
语法:string.match(reg)
Search() 查找与正则表达式相匹配的值 检索不到返回-1 检索到了 返回查找的字符首次在字符串中的位置
语法: string.search(reg)
字符串检素 分两种结果
第一种查找型 第二种是部捕获型,,分两种
第一是捕获型首次出现的。
第二次是捕获所有的/g。
replace()在字