正则表达式修饰符
| 修饰符 | 描述 |
|---|---|
| g | 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。 |
| i | 不区分大小写 |
| m | 执行多行匹配 |
| u | 含义为“Unicode 模式”,会正确处理四个字节的 UTF-16 编码。 |
| y | “粘连”(sticky)修饰符,y修饰符确保匹配必须从剩余的第一个位置开始,这也就是“粘连”的涵义。 |
| s | dotAll模式,即点(dot)代表一切字符。 |
RegExp 对象方法
test() 方法
- 定义
test() 方法用于检测一个字符串是否匹配某个模式.
如果字符串中有匹配的值返回 true ,否则返回 false。
- 用法
RegExpObject.test(string)
let str="Hello world! are you ok";
let patt=/word/g; // 查找"Hello"
let result=patt.test(str); // true
exec() 方法
- 定义
exec() 方法用于检索字符串中的正则表达式的匹配。
如果字符串中有匹配的值返回该匹配值,否则返回 null。
- 用法
RegExpObject.test(string) let str="Hello world!"; let patt=/Hello/g; // 查找"Hello" let result=patt.exec(str); // Hello
支持正则表达式的 String 对象的方法
search 方法
-
定义
search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
如果没有找到任何匹配的子串,则返回 -1。 -
用法
string.search(searchvalue) // searchvalue 查找的字符串或者正则表达式。 let str = 'My name is wang'; let patt = /My/g; str.search(patt); // 0
match 方法
-
定义
match()方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。注意: match() 方法将检索字符串 String Object,以找到一个或多个与 regexp 匹配的文本。这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g。如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹 配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。
-
用法
string.match(regexp) // 规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象。 var str="The rain in SPAIN stays mainly in the plain"; var n=str.match(/ain/gi); // [ain, AIN, ain, ain]
replace 方法
-
定义
replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 -
用法
string.replace(searchvalue,newvalue) // searchvalue 规定子字符串或要替换的模式的 RegExp 对象。请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模 式,而不是首先被转换为 RegExp 对象。 // newvalue 一个字符串值。规定了替换文本或生成替换文本的函数。 let str="My name is wang"; let n=str.replace(/wang/gi, "zhang"); // My name is zhang
split 方法
-
定义
split()方法用于把一个字符串分割成字符串数组。 -
用法
string.split(separator,limit) // separator 字符串或正则表达式,从该参数指定的地方分割。 // limit 该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。 let str = 'My name is wang'; let result = str.split(" "); // [My, name, is, wang] let result2 = str.split(" ", 3); // [My, name, is]