创建正则表达式
在 JavaScript 中,可以通过两种方式创建一个正则表达式。
通过调用 RegExp 对象的构造函数创建
var regexp = new RegExp(/表达式/);
通过字面量创建
var regexp = /表达式/;
测试正则表达式test
test() 正则对象方法,用于检测字符串是否符合该规则,该对象会返回 true 或 false,其参数是测试字符串。
regexObj.test(str);
- regexObj 是写的正则表达式
- str 我们要测试的文本
- 检测 str 文本是否符合我们写的正则表达式规范
let reg11 = new RegExp(/hello/)
let reg12 = /world/
console.log(reg11.test('hello world'), reg12.test('hello jack')); // true false
// 以上两种方式什么时候用? 如果你的正则表达式来源一个变量,那么就只能用new RegExp()
let str11 = 'jack'
let reg13 = new RegExp(str11)
console.log(reg13.test('hello rose'));
特殊字符
边界符
正则表达式中的边界符(位置符)用来提示字符所处的位置,主要有两个字符。
边界符 | 说明 |
---|---|
^ | 表示匹配行首的文本(以谁开始) |
$ | 表示匹配行尾的文本(以谁结束) |
如果 ^ 和 $ 在一起,表示必须是 精确匹配(不能多不能少,只能是这些)。
let regexp = /^he$/;
console.log(regexp.test('hello')); // flase
console.log(regexp.test('he')); // true
[]括号
/[abc]/.test('andy')
// true
正则含义:后面的字符串只要包含 abc 中任意一个字符,都返回 true。
[-]方括号内部 - 范围符
/^[a-z]$/.test('c')
// true
含义:方括号内部加上 - 表示范围,这里表示 a 到 z 26个英文字母都可以。
字符组合
/[a-z1-9]/.test('andy')
// true
方括号内部可以使用字符组合,这里表示包含 a 到 z 的 26 个英文字母和 1 到 9 的数字都可以。
量词符
量词符用来设定 某个模式出现的次数。
量词 | 说明 |
---|---|
* | 重复次数 ≥ 0 |
+ | 重复次数 ≥ 1 |
? | 重复 0 次或 1 次 |
{n} | 重复 n 次 |
{n,} | 重复次数 ≥ n |
{n,n} | 重复 n 次到 m 次 |
预定义类
预定类 | 说明 |
---|---|
\d | 匹配 0-9 之间的任一数字,相当于 [0-9] |
\D | 匹配所有 0-9 以外的字符,相当于 [^0-9] |
\w | 匹配任意的字母、数字和下划线,相当于 [A-Za-z0-9_] |
\W | 除所有字母、数字和下划线以外的字符,相当于 [^A-Za-z0-9_] |
\s | 匹配空格(包括换行符、制表符、空格符等),相等于[\t\r\n\v\f] |
\S | 匹配非空格的字符,相当于 [^\t\r\n\v\f] |
正则替换
replace() 方法可以实现替换字符串操作,用来替换的参数可以是一个字符串或是一个正则表达式。
stringObject.replace(regexp/substr,replacement)
- 第一个参数:被替换的字符串 或者 正则表达式
- 第二个参数:替换为的字符串
- 返回值:一个替换完毕的新字符串