36正则表达式
一、正则表达式
是一个描述字符规则的对象,可以用来检车一个字符是否含有某个字符,将匹配的字做替换或者从某个字符串中取出某个条件的子串等。其实就是一种规则,其实把正则称作规则表达式。正确的语法基于一种古老的perl语言
前端往往有大量的表单校验工作,采用正则表达式会使得数据校验的工作量大大减轻。
二、正则的创建
正则的创建方式
- 构造函数方式
var reg1 = new RegExp("a")
var str = "abcdcba"
console.log(str.match(reg1))
//输出匹配a的字符
- 字面量方式,古老的perl语言风格
var reg2 = /a/
console.log(str2.match(reg2))
//输出匹配a的字符
正则中的修饰符,写在正则表达式后面
g表示全局匹配,查找所有
i表示忽略大小写
字符串方法
- match 获取匹配的项目 返回数组 匹配正则
- search 字符串搜索
- replace 替换
正则方法
- test 用于检测一个字符串是否匹配某个模式,返回true和false
- exec 找到了返回数组,找不到返回null
三、正则与字符串配合
- search 字符串搜索 返回出现的位置
- match 获取匹配的项目 返回数组
- replace 替换所有匹配 返回替换后的字符串
- test 用于检测一个字符串是否匹配某个模式,返回true和false
四、字符类
任何字符 [abc]
范围 [a-z] [0-9]
或 |
排除 [^a] 排除a
组合 [a-z0-9A-Z]
五、表达式
[abc] 查找方括号之间的任意字符
[0-9] 查找任何从0至9的数字
[a-z] 查找任何从小写a到小写z的字符
[A-Z] 查找任何从大写A到大写Z的字符
[A-z] 查找任何从大写A到小写z的字符
六、元字符
转义字符
\d [0-9] 数字
\w [a-z0-9_] 数字、字母、下划线
\s 空白字符
\b 匹配单词边界
\D [^0-9] 非数字
\W [^a-z0-9] 非数字、字母、下划线
\S 非空白字符
. 任意字符
七、量词
也叫限定符,可以指定正则表达式的一个给定组,必须要出现多少次才能满足匹配
通过量词可以设置一个内容出现的次数,且量词只对它前边的一个内容起作用,都是必须连续出现
{n} 匹配前一个字符正好出现n次
{n, } 匹配前一个字符出现n次以上,没有限制
{n, m} 匹配一个字符出现n到m次
* 允许的次数是0至无穷次,有没有都行
+ 允许的次数是0至正无穷次,至少有一个
? 允许的次数是0至1,做多出现1次
() 一组
^ 表示开始
$ 结束