正则 API
String.match
js
"We will, we will rock you".match(/we/gi); // [ 'We', 'we' ]有 g 匹配多个,无 g 匹配单个。
返回 null/Array,但是这个 Array 很奇怪。
无 g 时候,Array 第一个为匹配项
todo
String.matchAll
matchAll 返回可迭代
String.search
str.search(regexp) 返回第一个匹配项的位置,没有返回 -1。
search 有且只能找 第一个
String.split
使用 正则表达式 来分割字符串。
js
"12-34-56".split(/[,\s*-]/);String.replace
https://www.yuque.com/qinsjs/jsinfo/wtdamli9znem4l76
todo
replace 默认只会替换第一个
js
"We will, we will".replace(/we/i, "I");
// 'I will, we will'
"We will, we will".replace(/we/gi, "I");
// 'I will, I will'String.replaceAll
https://www.yuque.com/qinsjs/jsinfo/go8pnlglcn0yf77l
todo
RegExp.test
https://www.yuque.com/qinsjs/jsinfo/wtdamli9znem4l76
返回 true/false 表示是否存在
如果正则表达式带有修饰符 g,则 regexp.test 从 regexp.lastIndex 开始查找,就像 regexp.exec 一样
带 g 时,注意 regexp.lastIndex!
js
/LOVE/gi.test("I love JavaScript"); // true
/LOVE/gi.test("I love JavaScript"); // falseRegExp.exec
没有 g,regexp.exec(str) 会返回第一个匹配项。
有 g
js
let str = "More about JavaScript at https://javascript.info";
let regexp = /javascript/gi;
let result;
while ((result = regexp.exec(str))) {
alert(`Found ${result[0]} at position ${result.index}`);
}
// 在位置 11 找到了 JavaScript,然后
// 在位置 33 找到了 javascript