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]||'';
}
posted @ 2021-09-02 10:43  海焰  阅读(69)  评论(0编辑  收藏  举报