运营商判断正则表达式&emoji表情过滤&时间格式化

  • 概述

    近期在项目中遇到三个问题,一是需要前端根据手机号判断运营商的场景,不考虑虚拟运行商及携号转网的情况,只能通过号段的正则表达式来判断;二是需要前端过滤用户输入内容,不允许emoji表情入库,否则数据库会出现问题;三是时间格式化处理。以下分别是三个问题的处理方法。

  • 运营商判断

    const getServiceProvider=(tel)=>{
      const chinaTelecom = /^(133|153|173|177|180|181|189|199)\d{8}$/   //电信
      const chinaUnicom = /^(130|131|132|145|155|156|166|175|176|185|186)\d{8}$/ //联通
      const chinaMobile = /^(134|135|136|137|138|139|147|150|151|152|157|158|159|178|182|183|184|187|188|198)\d{8}$/ //移动
      let result = {
        isMobile: false,
        operator: 'unknown'
      };
      if (chinaTelecom.test(tel)){
        result.isMobile = true;
        result.operator = 'China Telecom';
      } else if (chinaUnicom.test(tel)){
        result.isMobile = true;
        result.operator = 'China Unicom';
      } else if (chinaMobile.test(tel)){
        result.isMobile = true;
        result.operator = 'China Mobile';
      }
      return result;
    }
    
  • emoji表情过滤

    function filterEmoji(name) {
      let str = name.replace(/[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/ig, "");
      return str;
    }
    
  • 时间格式化处理

    function timeFilter(time){
      let date = time? new Date(time): new Date();
      let month = date.getMonth()<9? `0${date.getMonth()+1}`: (date.getMonth()+1);
      let day = date.getDate()<10? `0${date.getDate()}`: date.getDate();
      let hours = date.getHours()<10?`0${date.getHours()}`:date.getHours();
      let min = date.getMinutes()<10?`0${date.getMinutes()}`:date.getMinutes();
      let sec = date.getSeconds()<10?`0${date.getSeconds()}`:date.getSeconds();
      return date.getFullYear()+'-'+month+'-'+day+ " " +hours+':'+min+':'+sec;
    }
    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值