JS RegExp 对象

概述

  • RegExp对象表示正则表达式,是由普通字符和特殊字符(也叫元字符或限定符)组成的文字模板
  • 用途:对字符串执行模式匹配

建立RegExp对象

构造函数

var 变量 = new RegExp("正则表达式","匹配模式");
复制代码

字面量

var 变量 = /正则表达式/匹配模式;
复制代码

使用typeof检查正则对象,会返回object正则表达式

正则表达式语法

匹配模式

  • g:global 全局匹配
  • i:ignore case 忽略大小写匹配
  • m: multiple lines 多行匹配

基本元字符

  • .: 任何单个字符(除了换行和行结束符)
  • \: 转义字符,表示后一个字符不能从字面上解释
  • |: 或
  • []: 定义一个字符集合,匹配字符集合中的任意字符,/[abc]/等价于/a|b|c/
  • [^]: 对上面一个集合取非
  • -: 定义一个区间

特殊元字符

量词和位置

贪婪与懒惰(非贪婪)

正则表达式默认会匹配贪婪模式(尽量多的匹配)。数组

开启懒惰模式(尽量少的匹配):在量词后面加 ?

RegExp 对象方法

compile()

  • 用于在脚本执行过程当中编译正则表达式
  • 也可用于改变和从新编译正则表达式。
RegExpObject.compile(regexp,i/g/gi);
复制代码

exec()

  • 检索字符串中指定的值。返回找到的值,并肯定其位置
  • 返回值:若是 exec() 找到了匹配的文本,则返回一个结果数组。不然,返回 null
RegExpObject.exec(string);
复制代码

test()

检索字符串中指定的值。返回 truefalsebash

RegExpObject.test(string);
复制代码

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

search()

检索与正则表达式相匹配的子字符串。函数

str.search(regexp);
复制代码
  • 返回值:str第一个regexp 相匹配的子串的起始位置。若是没有任何匹配返回 -1。
  • search() 忽略标志 g。老是返回第一个匹配的位置。

match()

找到一个或多个正则表达式的匹配。spa

str.match(regexp);
复制代码
  • 返回值:存放匹配结果的数组
  • 找到一个仍是多个取决于全局标志g
  • 返回指定的值,而不是字符串位置。

repalce()

替换与正则表达式匹配的子串。code

str.replace(regexp/substr,replacement)
复制代码
  • 返回值:一个新的字符串
  • 设置全局标志g,替换全部匹配子串。不然,只替换第一个匹配子串。
  • replacement 中的 $ 字符具备特定的含义。

split()

把字符串分割为字符串数组。regexp

str.split(regexp,howmany)
//regexp:必需。从该参数指定的地方分割 
//howmany:可选。该参数可指定返回数组的最大长度。若是设置了该参数,返回的子串不会多于这个参数指定的数组。若是没有设置该参数,整个字符串都会被分割。
复制代码
  • 返回一个字符串数组。返回的数组中的字串不包括regexp自身
相关文章
相关标签/搜索