正则表达式
1、基础语法
/ ... / 正则开始和结尾分隔符,JS特有
gi 全局匹配找到一个不停止,忽略大小写
( ... ) 捕获分组
2、实例
截取url文件名
let name = url.substring(url.lastIndexOf('/') + 1).split(/[?&]/)[0];
处理<img>标签src属性的token值,有则替换为新值,没有则增加
let token = "&Token=" + getStore({name: 'Token'});
let handleSrc = function (pre, src, post) {
if (/Token=/.test(src)) {
src = src.replace(/((?:&|&|\?)Token=)[^&]*/gi, function (match, separator) {
return separator + tokenValue;
});
} else {
let separator = src.indexOf('?') !== -1 ? '&' : '?';
src += separator + token.substring(1);
}
return pre + src + post;
};
content = content.replace(/(<img\b[^>]*?\bsrc\s*=\s*")([^"]*?)("[^>]*>)/gi, function (match, pre, src, post) {
return handleSrc(pre, src, post);
});
第一捕获组
\b 单词边界,保证img是完成单词
[^>]*?

浙公网安备 33010602011771号