I am NingBo

正则表达式

正则表达式简介

正则表达式的目的

  1. 给定的字符串是否符合正则表达式的过滤逻辑(匹配)
  2. 可以通过正则表达式,从字符串中获取我们想要的特定部分

正则表达式的特点

  1. 灵活性、逻辑性和功能性非常的强
  2. 可以迅速地用极简的方式达到字符串的复杂控制

JavaScript RegExp对象

RegExp对象用于规定在文本中检索的内容
当检索某个文件时,可以用RegExp这种模式来描述要检索的内容
复杂的模式可用于解析、格式检查、替换等等


JavaScript中正则表达式的声明方式

创建RegExp对象的语法

var reg = new RegExp(参数1,参数2)
  • 参数1:正则公式(匹配原则)也可以是要匹配的字符串
  • 参数2:修饰符,可以省略
    • 常用修饰符:i:忽略大小写 g:全局匹配 m:执行多行匹配(结合^ $使用)

直接量语法

var reg3 = /参数1/修饰符;
  • 参数不能写成字符串
  • 参数1:匹配原则
  • 参数2:可选,修饰符(i g m)

方括号

  • [abc]:查找方括号之间的任何字符。
  • [^abc]:查找任何不在方括号之间的字符。
  • [0-9]:查找任何从 0 至 9 的数字。
  • [a-z]:查找任何从小写 a 到小写 z 的字符。
  • [A-Z]:查找任何从大写 A 到大写 Z 的字符。
  • [A-z]:查找任何从大写 A 到小写 z 的字符。
  • [adgk]: 查找给定集合内的任何字符。
  • [^adgk]:查找给定集合外的任何字符。
  • (red|blue|green):查找任何指定的选项。

元字符

元字符(Metacharacter)是拥有特殊含义的字符:

  • .:查找单个字符,除了换行和行结束符。
  • \w:查找单词字符。
  • \W:查找非单词字符。
  • \d:查找数字。
  • \D:查找非数字字符。
  • \s:查找空白字符。
  • \S:查找非空白字符。
  • \b:匹配单词边界。
  • \B:匹配非单词边界。
  • \0:查找 NUL 字符。

量词

  • n+ 匹配任何包含至少一个 n 的字符串。
  • n* 匹配任何包含零个或多个 n 的字符串。
  • n? 匹配任何包含零个或一个 n 的字符串。
  • n{X} 匹配包含 X 个 n 的序列的字符串。
  • n{X,Y} 匹配包含 X 或 Y 个 n 的序列的字符串。
  • n{X,} 匹配包含至少 X 个 n 的序列的字符串。
  • n$ 匹配任何结尾为 n 的字符串。
  • ^n 匹配任何开头为 n 的字符串。
  • ?=n 匹配任何其后紧接指定字符串 n 的字符串。
  • ?!n 匹配任何其后没有紧接指定字符串 n 的字符串。

RegExp对象的方法

regExp对象有3个方法:test()、exec()、compile()
test()方法检索字符串中的指定值。返回时true或false
exec()方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回null
compile()方法用于改变RegExp。既可以改变检索模式,也可以添加或删除第二个参数

支持正则表达式的 String 对象的方法

  • search 检索与正则表达式相匹配的值。
  • match 找到一个或多个正则表达式的匹配。
  • replace 替换与正则表达式匹配的子串。
  • split 把字符串分割为字符串数组。
打赏