正则表达式
概念:
一个用于规范字符串的表达式。
简单来说,就是写一个规则,然后通过这个规则可以从一个杂乱的字符串中找出符合规则的部分,也就可以用于判断
一个字符串是否符合某个规则。还可以将一个字符串中符合规则的部分进行替换。
初体验:
正则表达式其实就是一种规则,其实把正则称作规则表达式更为恰当。正则的语法基于一种古老的perl语言。
正则表达式的作用
1. 提取字符串:从指定的字符串中将符合规则部分提取出来
2. 匹配正则:判断一个字符串是否跟指定的规则匹配
3. 替换字符串:将一个字符串中跟规则匹配的部分替换掉
正则表达式的创建
语法: /正则表达式主体/修饰符(可选)
var reg = new RegExp() // 构造函数方式
var reg = /hello/i; // 字面量方式
使用说明:正则表达式比较特殊,不是字符串,不用加引号,但是要有定界符,两边都是斜杠。在斜杠后面可以加一些特定的修饰符。
修饰符
g 全局搜索
i 不区分大小写
m 换行模式
正则表达式的组成
普通字符
元字符
\d 匹配数字
\D 匹配任意非数字的字符
\w 匹配字母或数字或下划线
\W 匹配任意不是字母,数字,下划线
\s 匹配任意的空白符
\S 匹配任意不是空白符的字符
. 匹配除换行符以外的任意单个字符
^ 表示匹配行首的文本(以谁开始)
$ 表示匹配行尾的文本(以谁结束)
限定符
{n} 表示n个
{n,m} 表示n个到m个
{n,} 表示n个到无穷个
+
表示一个到多个 {1,}
*
表示0个到多个 {0,}
?
表示0个到一个 {0,1}
特殊字符(元字符):正则表达式中有特殊意义的字符
转义 \
//匹配 ? * + .等元字符 转义\
var regx10 = /^[?]$/
console.log('?'.match(regx10));
var regx10 = /^[*]$/
console.log('*'.match(regx10));
//用转义字符来
var regx10 = /^\*$/
console.log('*'.match(regx10));
var regx10 = /^\.$/
console.log('.'.match(regx10));
正则的检测方法
test 测试 返回一个boolean类型值(是否匹配)
var regx = /\w/
console.log(regx.test('abc')) //true
exec 执行 返回给你一个对应的匹配的数组(如果有就返回一个数组)
var regx = /\d/
console.log(regx.exec('123')) //[1,2,3]
字符串支持正则的4个方法
- split 切割
- replace 替换
- search 查找
- macth 匹配