使用\ 将一些特殊字符进行转义 (如果你不清楚那个字符需要使用\ 都加上也没有问题)
() 作用 : 充当捕获组, 同时, 用于回引
无回引使用 (?:)
exec
在一个指定字符串中执行一个搜索匹配。返回一个结果数组或 null 。
var re = /quick\s(brown).+?(jumps)/ig;
var result = re.exec('the quick brown for jumps over the lazy dog');
console.log(result)
replace
var newString = 'abc12345#$*%'.replace(
/([^\d]*)(\d*)([^\w]*)/,
(match, p1, p2, p3, offset, string) => [p1, p2, p3].join(' - ')
);
console.log(newString);
引用的使用
const str = 'l say: "l love you"'
const re = /"([^"]*)"/
console.log(str.replace(re, '{$1}'))
const re2 = /"(?<haha>[^"]*)"/g
console.log(str.replace(re2, '{$<haha>}'))
断言查找
向前断言查找 (?= )
(?=xxx) : 匹配的字符 后面必须为 xxx
const str = 'aaajavascriptaaa'
const re = /java(?=script)/i
console.log(re.exec(str))
const str = 'aaajavascriptaaa'
const re = /java(?=script)([a-z])([a-z]\w*)/i
console.log(re.exec(str))
否定式向前查找断言 (?! ) (?!xxx) : 匹配的字符 后面必须不为 xxx
const str = 'javabean'
const re = /java(?!script)([a-z]\w*)/i
console.log(re.exec(str))
(?<=xxx) : 匹配的字符 前面必须为 xxx
const str = 'javascript'
const re = /(?<=java)(\w*)/i
console.log(re.exec(str))
const str = 'typescript'
const re = /(?!=java)(\w*)/i
console.log(re.exec(str))
|