创建正则表达式

在 JavaScript 中,可以通过两种方式创建一个正则表达式。
通过调用 RegExp 对象的构造函数创建

  1. var regexp = new RegExp(/表达式/);

通过字面量创建

  1. var regexp = /表达式/;

测试正则表达式test

test() 正则对象方法,用于检测字符串是否符合该规则,该对象会返回 true 或 false,其参数是测试字符串。

  1. regexObj.test(str);
  • regexObj 是写的正则表达式
  • str 我们要测试的文本
  • 检测 str 文本是否符合我们写的正则表达式规范
    1. let reg11 = new RegExp(/hello/)
    2. let reg12 = /world/
    3. console.log(reg11.test('hello world'), reg12.test('hello jack')); // true false
    4. // 以上两种方式什么时候用? 如果你的正则表达式来源一个变量,那么就只能用new RegExp()
    5. let str11 = 'jack'
    6. let reg13 = new RegExp(str11)
    7. console.log(reg13.test('hello rose'));

    特殊字符

    边界符

    正则表达式中的边界符(位置符)用来提示字符所处的位置,主要有两个字符。
边界符 说明
^ 表示匹配行首的文本(以谁开始)
$ 表示匹配行尾的文本(以谁结束)

如果 ^ 和 $ 在一起,表示必须是 精确匹配(不能多不能少,只能是这些)。

  1. let regexp = /^he$/;
  2. console.log(regexp.test('hello')); // flase
  3. console.log(regexp.test('he')); // true

[]括号

  1. /[abc]/.test('andy')
  2. // true

正则含义:后面的字符串只要包含 abc 中任意一个字符,都返回 true。

[-]方括号内部 - 范围符

  1. /^[a-z]$/.test('c')
  2. // true

含义:方括号内部加上 - 表示范围,这里表示 a 到 z 26个英文字母都可以。

字符组合

  1. /[a-z1-9]/.test('andy')
  2. // 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() 方法可以实现替换字符串操作,用来替换的参数可以是一个字符串或是一个正则表达式。

  1. stringObject.replace(regexp/substr,replacement)
  • 第一个参数:被替换的字符串 或者 正则表达式
  • 第二个参数:替换为的字符串
  • 返回值:一个替换完毕的新字符串