Skip to content

这是一个angular字符串格式化的过滤器,支持手机号 / 固定电话 / 银行卡 / 普通数字卡号 / 身份证 / 姓名 / 用户名 / 电子邮箱

Notifications You must be signed in to change notification settings

toviLau/angular.strCover

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

简单介绍

这是一个angular字符串过滤器,可以格式化常用字符串的显示,还有隐私遮挡。您可以自由选择是否格式化或保留原样,当然隐私遮挡也是提供您自由选择。 你不用但心你传入的字符串中间是否有空格,程序将自动去除中间多余的空格。

  • 如这样的字符串:"13 01 23 45 6 7 8"程序最后会去除所有的空格显示这样13012345678
  • 如这样的字符串:"13 01 23 45 6 7 8"程序最后会去除所有的空格显示这样130 1234 5678
  • 如这样的字符串:"13 01 23 45 6 7 8"程序最后会去除所有的空格显示这样130****5678
  • 如这样的字符串:"13 01 23 45 6 7 8"程序最后会去除所有的空格显示这样130 **** 5678
  • 如这样的字符串:"0 7 5 5345 6 5 678-8 789"程序最后显示这样0755-34565678-8789
  • 如这样的字符串:"0 7 5 5345 6 5 678-8 789"程序最后显示这样0755-34****78-8789
  • 如这样的字符串:"0 7 5 5345 6 5 678"程序最后显示这样0755-34565678
  • 如这样的字符串:"0 7 5 5345 6 5 678"程序最后显示这样0755-34****78

可以格式化以下类型的字符串类型

  • 手机号
  • 固定电话
  • 银行卡
  • 普通数字卡号
  • 身份证
  • 姓名
  • 用户名
  • 电子邮箱

好了现在介绍使用方法 format:是否格式化 hidden:是否启用隐私遮挡 配制默认值是false

<!--  手机号码格式化并启用隐私遮挡,返回 136 **** 5678 -->
 手机号码:<div>{{'13612345678' | strCover:"{format: true,hidden: true}"}}</div>

<!-- 手机号码格式化不启用隐私遮挡,返回 136 1234 5678 -->
 手机号码:<div>{{'13612345678' | strCover:"{format: true,hidden: false}"}}</div>

<!-- 手机号码不格式化不启用隐私遮挡,返回 13612345678 -->
 手机号码:<div>{{'13612345678' | strCover:"{format: false,hidden: false}"}}</div>

<!--  固定电话格式化并启用隐私遮挡,返回 +86755-34****78-8789 -->
 固定电话:<div>{{'+86755-34565678-8789' | strCover:"{format: true,hidden: true}"}}</div>

<!--  固定电话格式化并启用隐私遮挡,返回 0755-34****78-8789 -->
 固定电话:<div>{{'0755-34565678-8789' | strCover:"{format: true,hidden: true}"}}</div>

 <!--  固定电话格式化并启用隐私遮挡,返回 34****78-8789 -->
 <!--
       它支持的固定电话号码格式如下
            +8675534565678-1234 - 有国际区号、有国内区号、有固定电话号码,有分机号
            075534565678-1234 - 没有国际区号、有国内区号、有固定电话号码,有分机号
            34565678-1234 - 没有国际区号、没有国内区号、有固定电话号码,有分机号
            34565678 - 没有国际区号、没有国内区号、有固定电话号码,没有分机号
            +8675534565678 - 有国际区号、有国内区号、有固定电话号码,没有分机号
            换句话来说就是固定电话号码是必须的,其它都可以没有
            也就是这样的表达式:[ 国际区号、国内区号 ] 固定电话号码 [ 分机号 ]
            格式化后的样子是[ [+国际区号]国内区号 - ]  固话前两位 (**** or ***)  固话号后两位 [ 区号 ]
-->
 固定电话:<div>{{'34565678-8789' | strCover:"{format: true,hidden: true}"}}</div>
<--
    ************************************
    *** 银行卡格式化支持16位与19位规则如下
    ************************************
    格式化规则:4位1组,
                            如:8612 3423 4345 4567 678 (19位)
                               8612342343454567678 (19位)
                               8612 3423 4345 4567 (16位)
                               8612342343454567 (16位)
    隐私保护:首尾两组明文显示,中间组保护
                            如:8612 **** **** **** 678 (19位)
                               8612************678 (19位)
                               8612 **** **** 4567 (16位)
                               8612********4567 (16位)

    ************************************
    *** 普通数字卡号
    ************************************

    格式化规则:3位1组,
                            如:861 234 234 345 456(非16位 or 非19位)
                               861 234 234(非16位 or 非19位)
                               861234234345456(非16位 or 非19位)
                               861234234(非16位 or 非19位)
    隐私保护:首尾两组明文显示,中间组保护
                               861 *** *** *** 456(非16位 or 非19位)
                               861 *** 234(非16位 or 非19位)
                               861*********456(非16位 or 非19位)
                               861***234(非16位 or 非19位)

    ************************************
    *** 中国大陆身份证
    ************************************
    格式化规则:省市区码(6位)出生年月日(8位)个人身份编码(3位)校验码(1位),
                            如:101112 20180101 0011
                            如:101112201801010011
    隐私保护:省市区码明文,出生年月日保护,个人身份编码前1位保护,后2位明文,校验码明文
                            如:101112 ******** *011
                                   101112*********0011
    姓名规则
    *************************
    *** 姓名规则
    *************************
    ------------------------
         英文名处理方式
    ------------------------
          1、以【单词后空格】或【首字母大写】为单位拆分,【首】单词全显不隐藏。
          2、从【第二个单词】开始匹配,每个单词【首、尾】各保留26%字符显示,中间以星号(*)填充。

          例: 1.原文: Tovi Lau               返回匹配结果: Tovi L*u
              2.原文: Thomas Alva Edison    返回匹配结果: Thomas A**a Ed**on
              3.原文: WilliamHenryGates     返回匹配结果: William H***y G***s
              4.原文: Michael Jackson       返回匹配结果: Michael Ja***on

    ------------------------
         中文名处理方式
    ------------------------
          1、以单个汉字为单位拆分,【尾】汉字保留。
          2、从【第一个汉字开始 --> 倒数第二个汉字结束】 以星号(×)替换。

          例: 1.原文: 桃伟          返回匹配结果: ×伟
              2.原文: 爱迪生        返回匹配结果: ××生
              3.原文: 比尔盖茨      返回匹配结果: ×××茨
              4.原文: 迈克尔杰克逊   返回匹配结果: ×××××逊

    ------------------------
       中英文混合名处理方式
    ------------------------
       中文在前:
          1、中文名:
              1)、以【单个汉字】为单位拆分,【尾】汉字保留显示。
              2)、从【第一个汉字开始 --> 倒数第二个汉字结束】 以星号(×)替换。
          2、英文名:
              1)、以【单词后空格】或【首字母大写】为单位拆分,【首】单词全显不隐藏。
              2)、所有单词【首、尾】各保留26%字符显示,中间以星号(*)填充。
          例:
              原文: 迈克尔杰克逊 Michael Jackson      返回结果: ×××××逊 Mi***el Ja***on

       英文在前:
          1、中文名:
              1)、以单个汉字为单位切割,【尾】汉字保留。
              2)、从【第一个汉字开始 --> 倒数第二个汉字结束】 以星号(×)替换。
          2、英文名:
              1)、以【单词后空格】或【首字母大写】为单位拆分
              2)、【首】单词全显。从【第二个单词】开始匹配,每个单词【首、尾】各保留26%字符显示,中间以星号(*)填充。
          例:
               原文: Michael Jackson 迈克尔杰克逊     返回匹配结果: Michael Ja***on ×××××逊}

    ************************
    ** 用户名
    ************************
     参考姓名中英文方式

    ************************
    ** 电子邮箱
    ************************
     用户名部分参考姓名中英文方式,邮箱域名部分保留(如:@qq.com,@vip.163.com)
     tovi@qq.com
     t**i@qq.com
     liutaowei@vip.163.com
     li*****ei@vip.163.com

About

这是一个angular字符串格式化的过滤器,支持手机号 / 固定电话 / 银行卡 / 普通数字卡号 / 身份证 / 姓名 / 用户名 / 电子邮箱

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published