正则表达式的创建
- 使用 /内容/ 的语法形式,可以快速创建正则表达式
- 也可以使用 new Regexp(‘内容’) 的形式,创建正则表达式
- 使用 typeof 运算符检查正则表达式的类型,结果是 object
元字符
元字符 | 功能 |
---|
\d | 匹配一个数字 |
\D | 匹配一个非数字字符 |
\w | 匹配一个单字字符(字母、数字或者下划线) |
\W | 匹配一个非单字字符 |
\s | 匹配一个空白字符,包括空格、制表符和换行符 |
. | 任意字符 |
元字符注意事项
- 如果使用 new RegExp() 写法,反斜杠需要多写一个
字符的转义
- 在特殊字符之前的反斜杠 \ 表示下个字符不是特殊字符,应该按照字面理解
/^.$/
/^\.$/
/^\\$/
- 不管一个符号有没有特殊意义,都可以在其之前加上一个 \ 以确保它表达的是这个符号本身
方括号表示法
- 使用方括号,比如[xyz],可以创建一个字符集合,表示匹配方括号中的任意字符
- 可以使用短横 - 来指定一个字符范围,^表示否定
元字符 | 等价的方括号表示法 |
---|
\d | [0-9] |
\D | [^0-9] |
\w | [A-Za-z0-9_] |
\W | [^A-Za-z0-9_] |
量词
量词 | 意义 |
---|
* | 匹配前一个表达式0次或多次。等价于{0,} |
+ | 匹配前面一个表达式1次或多次。等价于{1,} |
? | 匹配前面一个表达式0次或者1次。等价于{0,1} |
{n} | n 是一个正整数,匹配了前面一个字符刚好出现了 n 次 |
{n,} | n 是一个正整数,匹配了前一个字符至少出现了 n 次 |
{n,m} | n 和 m 都是整数。匹配前面的字符至少出现了 n 次,最多 m 次 |
修饰符
- 修饰符也叫做标志(flags),用于使用正则表达式实现高级搜索
var re = /m/gi;
var re = new RegExp('m', 'gi');
正则表达式的相关方法
方法 | 简介 |
---|
test() | 测试某字符串是否匹配正则表达式,返回布尔值 |
exec() | 根据正则表达式,在字符串中进行查找,返回结果数组或 null |
test() 方法
- 正则表达式的 test() 方法用来测试某字符串是否匹配此正则表达式,它返回 true 或 false
exec() 方法
- exec() 方法功能是:在一个指定字符串中执行一个搜索匹配查找,返回一个结果数组或 null
exec() 方法的逐条遍历
- exec() 方法最有趣的是,有 “g” 修饰符的正则表达式将自动成为“有状态的”,这意味着可以对单个字符串中的多次匹配结果进行逐条的遍历
字符串的相关方法
方法 | 简介 |
---|
search() | 在字符串中根据正则表达式进行查找匹配,返回首次匹配到的位置索引,测试不到则返回 -1 |
match() | 在字符串中根据正则表达式进行查找匹配,返回一个数组,找不到则返回 null |
replace() | 使用替换字符串替换掉匹配到的字符串,可以使用正则表达式 |
split() | 分隔字符串为数组,可以使用正则表达式 |