1、g的作用
let reg1 = /3/; let reg2 = /3/g; let x = '353';
则:x.match(reg1)只能匹配到第一个符合条件的子串,x.match(reg2)能匹配所有符合条件的子串
2、利用正则表达式进行匹配替换
正则替换时,第二个参数可以是函数
function replaceFun(text) {return "^^" + text + "&&"};
let x = "aaa3aaa3aaa3aaa";
let reg = /[\d]/g;
x.replace(reg, replaceFun)
返回结果 "aaa^^3&&aaa^^3&&aaa^^3&&aaa"
正则匹配时几个特殊的符号
字符 | 替换文本 | 例子 |
$1、$2、...、$99 | 与 reg 中的第 1 到第 99 个子表达式相匹配的文本。 | let x="3a4a5a" let reg=/(3)a(4)a/g; x.replace(reg,'$1^^$2&&'); 输出 "3^^4&&5a" |
$& | 与 rege 相匹配的子串。 | let x="3a4a5a" let reg=/[\d]/g; x.replace(reg,'^^$&**'); 输出 "^^3**a^^4**a^^5**a" |
$` | 位于匹配子串左侧的文本。 | let x="a3b4c5d" let reg=/[\d]/g; x.replace(reg,'$`'); 输出 "aaba3bca3b4cd" |
$' | 位于匹配子串右侧的文本。 | let x="a3b4c5d" let reg=/[\d]/g; x.replace(reg,"$'"); 输出 "ab4c5dbc5dcdd" |
3、利用正则表达式清除浏览器cookie
/**
* 清除所有cookie
*/
function clearAllCookie() {
const reg = /[^ =;]+(?=\=)/g; // 《JavaScript权威指南》正则表达式一章(10.1.5 指定匹配规则)可以参考着理解该正则表达式
const keys = document.cookie.match(reg) || [];
keys.forEach(function(key){
document.cookie = `${key}=0;expires=${new Date(0).toString()}`;
});
}
教程:http://www.runoob.com/regexp/regexp-tutorial.html