Skip to main content

正则表达式

结构

标志含义
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]);
}