正则表达式JS实战总结

278 阅读1分钟

1.匹配结尾的数字

如34AFyy92
正则如下/\d+$/g

2.统一空格个数,将字符串内的多个空格变成一个空格

 例如: 蓝  色 梦     想
 变成:蓝 色 梦 想
 var str = '蓝  色 梦     想'
 var reg = /\s+/g
 str = str.replace(reg,' ')

3. 电话号码正则

      /^\d{3,4}-\d{7,8}(-\d{3,4})?$/
     区号必填为3~4位数字,区号之后用"-"与电话号码连接:
       ^\d{3,4}- 
     电话号码为7~8为的数字 /\d{7,8}/
     分机号码为3~4位数字,非必填,若填以"-"与电话号码连接:(-\d{3,4})?

4. 使用正则表达式实现删除字符串中的空格

     删除字符串两侧的空格
     function trim(str){
         return str.replace(/^\s+|\s$/g,'')
     }
     
     删除字符串左侧空白字符
     function ltrim(str){
         return str.replace(/^\s+/g,'')
     }
     
     删除字符串右侧的空白字符
     function rtrim(str){
           function str.replace(/\s$/g,'')
     }

5. 获取文件信息

         // 获取文件名
        getFileName (name) {
              return name.substring(0, name.lastIndexOf("."))
        },
        // 获取 .后缀名
        getExtension (name) {
              return name.substring(name.lastIndexOf("."))
        }
        //正则表达式获取.后缀名 
         /\.\w+$/g.exec(str)[0]
        // 只获取后缀名
        getExtension (name) {
              return name.substring(name.lastIndexOf(".")+1)
        }

6.贪婪与非贪婪

  1. 使用正则表达式实现将浮点数点左边的数每三位添加一个逗号
function toMoney(num) {
   return num && num
       .toString()
       .replace(/(\d)(?=(\d{3})+\.)/g, function ($1, $2, $3) {
       	console.log($1, $2, $3);
           return $2 + ',';
       });
}
console.log(toMoney(1234567891.12)); 
// 1 1 891
// 4 4 891
// 7 7 891
// 1,234,567,891.12
  • 正向前瞻(?=pattern)的用法:在任何匹配pattern的字符串开始处匹配查找字符串

  • $1, $2, $3分别代表正则匹配的括号里的值。 注:这是一个非捕获匹配,也就是说,该匹配不需要获取供以后使用。

  • (\d{3})+\. 说明匹配3个及3的倍数个数字加“.”结尾的 如:891.、567891.、234567891.

  • (\d)(?=(\d{3})+\.) 说明只有匹配到该数字后有3个及3的倍数个数字加“.”结尾的该数字被匹配。比如:7891.中的7被匹配,``4567891.中的4被匹配,1234567891.中的1被匹配。