正则表达式
结构
标志 | 含义 |
---|---|
g | 全局的(匹配多次) |
i | 忽略大小写 |
m | 多行 |
标识 | 含义 |
---|---|
\d | 数字0-9 |
\D | 非\d |
\w | 数字0-9/a=z/A-z/下划线 |
\W | 非\w |
\s | 空格符,tab,换页,换行 |
\S | 非\s |
[...] | 字符范围[a-zA-Z] |
... | 除...外的 |
^...$ | ^首......尾$ |
(...) | 捕获型分组。任何匹配这个分组的都会被捕获 |
(?:...) | 非捕获型分组。这个分组是可选的 |
(...)? | ? 标识匹配0次或1次 |
x* | 贪恋。匹配>=0次 |
x+ | 贪婪。匹配>0次 |
x{n} | 重复n次 |
x{n,} | 重复>=n次 |
x{n,m} | 重复n到m次 |
常见的用法
匹配URL
var parse_url = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/;
var url = "http://www.ora.com:80/goodparts?q#fragment";
var result = parse_url.exec(url);
var names = ['url', 'scheme', 'slash', 'host', 'port', 'path', 'query', 'hash'];
var blanks = ' ';
var i;
for (i = 0; i < names.length; i++) {
console.log(names[i] + ':' + blanks.substring(names[i].length), result[i]);
}