JavaScript 正则表达式
正则表达式
正则表达式 - JavaScript | MDN,正则表达式是用于匹配字符串中字符组合的模式。
预定义类
. [^\n\r] 除了换行和回车之外的任意字符
\d [0-9] 数字字符
\D [^0-9] 非数字字符
\w [a-zA-Z0-9] 单词字符(在js中,不包含汉字)
\W [^a-zA-Z0-9] 非单词字符
\s [\f\r\n\t\v] 不可见字符
\S [^\f\r\n\t\v] 非不可见字符(即可见字符)
基础语法
{} 里面的数字 表示前面内容出现的次数,{n}次,{n,}n到多次,{n,m}n到m次;
+ 表示前面的内容有 1 个或多个
* 表示前面的内容有 0 个或多个
? 表示前面的内容有 0 个或 1 个 3?也可以写作:(3|)
[] 表示一个字符的位置
() 用来分组 可以提高优先级
| 或运算符
^ 当^出现在[]里面的时候,它表示取反
/^内容/ 严格限制开头
/内容$/ 严格限制结尾
/^内容&/ 严格限制内容,不仅仅是开头和结尾!
修饰符
/RegularExpression/i ignoreCase 忽略大小写
/RegularExpression/g global 全局模式
/RegularExpression/m multiline 多行模式
简单应用
// 获取地址栏参数
export const getArgument = name => {
return (window.location.href.match(new RegExp("(?:(?:^|&)|\\?)"+ name +"=([^&]*)(?:&|$)"))||[])[1];
}
window.location.href = 'http://www.baidu.com?aaa=123&bbb&ccc=';
console.log(getArgument('aaa')); // '123'
console.log(getArgument('bbb')); // undefined
console.log(getArgument('ccc')); // ''
console.log(getArgument('ddd')); // undefined
// 获取文件后缀名
export const getFileSuffix = filename => {
return (filename.match(/^[^\.].*(\.[^\.]*)$/)||[])[1]||'';
}