常用正则表达式(保持更新)
Published:
正则表达式无论是在任何语言的开发中都是很常见的,有时候也能给我们带来一些意想不到的收益,这篇文章用来积累一些常用的正则表达式,长期保持更新~~~
PS: RegExr 是个很不错的社区。
提取字符串中所有的 uid=123213213 格式中的数字
var str = 'asdasdasdasddassduid=o12345;asdsadasduid=fgdf6789;qwwqe'
var reg = /uid=[^\d]+(\d+)/ig;
var match = null;
var ret = [];
while (!!(match = reg.exec(str))) {
ret.push(match[1]);
}
console.log(`结果为 ${JSON.stringify(ret)}`);
匹配 css 中的图片
var str = `
.a {
background: url(aaa.gif)
}
.b {
background: url('bbb.png')
}
.c {
background: url("ccc.jpg")
}
`;
var reg = /\burl\s*\((["']?)([^\)]+)\1\)/ig;
var match = null;
var ret = [];
while (!!(match = reg.exec(str))) {
ret.push(match[2]);
}
console.log(`结果为 ${JSON.stringify(ret)}`);
匹配 html 元素中带有 src 的元素中 src 的属性值
var str = `
<div>
<img src='bbb.png' />
<img src="ccc.jpg" />
<iframe src="https://www.baidu.com"></iframe>
</div>
`;
var reg = /\bsrc\s*=\s*(['\"])([^'\"]+)\1[^>]*>/ig;
var match = null;
var ret = [];
while (!!(match = reg.exec(str))) {
ret.push(match[2]);
}
console.log(`结果为 ${JSON.stringify(ret)}`);
匹配 html 元素中带有 href 的元素中 href 的属性值
var str = `
<link rel="stylesheet" media="all" href="aaa.css" />
<link rel="stylesheet" href="bbb.css">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<a href="https://www.baidu.com">baidu</a>
<a href="/rrr">ddd</a>
`;
var reg = /\bhref\s*=\s*(['\"])([^'\"]+)\1[^>]*>/ig;
var match = null;
var ret = [];
while (!!(match = reg.exec(str))) {
ret.push(match[2]);
}
console.log(`结果为 ${JSON.stringify(ret)}`);
匹配注释
var str = `
lsdsddss
// 这是单行注释一
addsds
// 这是单行注释二
sdssdds
/**
* 这是多行注释一
*/
333
eee
/**
* 这是多行注释二
* 二二二
*/
`;
var reg = /(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/img;
var match = null;
var ret = [];
while (!!(match = reg.exec(str))) {
ret.push(match[1]);
}
console.log(`结果为 ${JSON.stringify(ret)}`);
匹配字符串中的数字字串可能是小数或整数
var str = '12aaa34.0bbb56.1ccc78.9.ddd55.000';
var reg = /[-+]?([0-9]*\.?[0-9]+|[0-9]+\.[0-9]*)/ig;
var match = null;
var ret = [];
while (!!(match = reg.exec(str))) {
ret.push(match[1]);
}
console.log(`结果为 ${JSON.stringify(ret)}`);
去除字符串两端的空格
function trim(str) {
return str.replace(/(^\s*)|(\s*$)/g, '');
}
console.log(`---${trim(' abc ')}---`);