关注小程序 找一找教程网-随时随地学编程

正则表达式

正则表达式

语法

/正则表达式主体/修饰符
var str = "Visit Runoob!";
var n = str.search(/Runoob/i);
// n=6

replace()

var str = 'Visit Microsoft!'
var txt = str.replace(/microsoft/i,"Runoob");
// txt = Visit Runoob!

修饰符

  • i 忽略大小写
  • g 全局匹配,而非找到第一个匹配后停止
  • m 执行多行匹配

模式

  • [abc] 查找方括号之间的任何字符
  • [0-9] 查找从0至9的数字
  • (x|y) 查找任何以|分隔的选项

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

  • \d 匹配数字
  • \s 匹配空白字符
  • \S 匹配不是空白符的字符
  • \w 匹配字母或数字或下划线或汉字
  • \W 匹配不是字母或数字或下划线或汉字的字符
  • \b 匹配单词边界
  • \B 匹配不是单词开头或结束的位置
  • \uxxxx 查找以十六进制数xxx规定的Unicode字符
  • ^ 匹配字符串的开始
  • $ 匹配字符串的结束
  • [^aeiou]匹配除了aeiou这几个字母以外的任意字符

量词

  • n+ 匹配任何包含至少一个n的字符串
  • n* 匹配任何包含零个或多个n的字符串
  • n? 匹配任何包含另个或一个n的字符串
  • {n} 重复n次
  • {n,} 重复n次或更多次
  • {n,m} 重复n次到m次

懒惰限定符

  • *? 匹配0次或多次但尽可能少的匹配
  • +? 匹配1次或多次但尽可能少的匹配
  • ?? 匹配0次或1次但尽可能少的匹配
  • {n,m}? 匹配n到m次但尽可能少的匹配
  • {n,}? 匹配n次或更多次但尽可能少的匹配

使用RegExp对象

test()

test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

var patt = /e/;
const res = patt.test("The best things in life are free!");
// res = true

exec()

exec() 方法用于检索字符串中的正则表达式的匹配。

该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。

const res = /ee+/.exec("The best things in life are free!");
// res = ['ee', index: 30, input: 'The best things in life are free!', groups: undefined]