首页 > 其他分享 >记录--用js如何实现将手机号中间的几位数字变成****

记录--用js如何实现将手机号中间的几位数字变成****

时间:2023-09-16 17:56:38浏览次数:45  
标签:const 手机号 -- telphone js let result 字符串 console

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助

今天,我们要实现一个很常见并且简单的功能:将手机号中间的几位数变成****

这个功能其实很常见,比如我们微信的账号安全里面显示的手机号、掘金的账号设置里面显示的手机号、支付宝里面的证件号码、各大银行的App卡号.....还有很多有关系到我们私密的地方,在此就不一一例举了,看似简单的功能,我们该如何实现呢?

其实实现的方法有很多,在这里作者将使用js的方式来实现,如有不正确或者需要修改的地方,请多多指教,有更好的方法也可以留言~

下面所使用到的方法,相信学习过javaScript的小伙伴们都非常熟悉,但是你还记得他们的用法嘛?下面作者会对使用到的方法进行简单回顾,不太记得的小伙伴要去回顾一下了呢~

好了,废话少说,开始进入正题。

1. 第一种,使用字符串和数组中常见的几个方法。字符串方法:split()。数组方法:splice(),join()。

在实现之前,我们先一起来回顾一下这几个方法:

  1. split(): 将一个字符串拆分为一个子字符串数组,并返回该数组。

注释:该方法返回新数组,不会更改原始字符串。 注意:如果("")用作分隔符,则会对字符串进行逐个字符拆分。 www.w3school.com.cn/jsref/jsref…

下面是一个例子

const str = “hello”
let arr = str.split("");
console.log(arr); // h,e,l,l,o
  1. splice():方法向数组添加或从数组中删除项目,并返回删除的项目。

注释:splice() 该方法会改变原始数组。www.w3school.com.cn/jsref/jsref…

下面是一个例子:

const arr = ["a","b","c","d"];
arr.splice(1,2,"e","gg","d"); //从数字索引的第一位开始,删除两个内容,向数组添加”e“和”gg“两项。
console.log(arr); // ["a","e","gg","d"];
  1. join():将数组作为一个字符串返回。元素将由指定的分隔符分隔。默认分隔符是逗号 (,)。

注释:join()该方法不会改变原数组

下面是一个例子:

const arr = ['a','b','c','d'];
let result = arr.join();
console.log(result); // a,b,c,d

实现功能:

const telphone = '13300009999';
let telArr = telphone.split();
telArr.splice(3,4,'****');
let result = telArr.join(); //因为不会改变原数组,需要用一个新的变量去接收
console.log(result); // 1330****999

2.第二种,利用字符串的substr()

  1. substr():该方法用于提取字符串的一部分。该方法从指定位置开始,并返回指定数量的字符。

注释:substr() 方法不会更改原始字符串。 下面是一个例子:

const str = 'Hello World';
let result = str.substr(1,4);
console.log(result); //ello

实现功能:

const telphone = '13300009999';
let result = telphone.substr(0,4) + '****' + telphone.substr(8);
console.log(result);// 1330****999

//第二句代码解释:
//使用 `substr` 方法截取电话号码的前四位,然后拼接上'****',
//再拼接上电话号码从索引为8开始的剩余部分,将结果赋值给变量result。

3.第三种,利用字符串的substring()和replace();

  1. substring():该方法用于从字符串中提取指定的索引(位置)之间的字符,并返回子字符串。 注释:substring() 方法不会更改原始字符串。 下面是一个例子:
const str = 'Hello World';
let result = str.substring(1,4);
console.log(result); //ell
  1. replace():该方法在字符串中搜索值或正则表达式;该方法返回已替换值的新字符串。

注释:replace() 方法不会更改原始字符串。 下面是一个例子:

const str = 'Hello World';
let result = str.replace("Hello","Hi");
console.log(result); //Hi World

实现功能:

const telphone = '13300009999';
let result = telphone.replace(telphone.substring(3,8),'****');
console.log(result);// 1330****999

上述的replace()提到了正则表达式,那么我们也可以使用正则表达式来实现www.w3school.com.cn/jsref/jsref… www.w3school.com.cn/js/js_regex…

  1. /d:查找数字
  2. 1,1,1,2,...,$99:与正则规则中的第1到第99个子表达式相匹配的文本。

实现功能:

const telphone = '13300009999';
const reg = /(\d{4})\d{4}(\d{3})/;
let result = telphone.replace(reg,"$1****$2");
console.log(result);// 1330****999

本文转载于:

https://juejin.cn/post/7271058595444752443

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

 

标签:const,手机号,--,telphone,js,let,result,字符串,console
From: https://www.cnblogs.com/smileZAZ/p/17707032.html

相关文章

  • centos虚拟机网络配置
      /etc/sysconfig/network-scripts/ifcfg-ens33  ......
  • tortoise-orm 使用雪花算法生成主键ID
    importtimefromtortoiseimportTortoise,fields,run_asyncfromtortoise.modelsimportModelfromtypingimportAnyclassSnowflake:def__init__(self,machine_id:int):"""生成雪花算法ID:parammachine_id:机器ID......
  • c# 高级
    命名空间:使用:使用目的:对类进行分类使用方法:使用using关键词引入方法:在对象前加入命名空间名可以对命名空间进行嵌套字符串操作:字符串与正则表达式字符串:字符串类:System.StringSystem.Text.StringBuilder string方法:字符串名.Length()获取字符串的长度 “+”字符......
  • 无参数RCE实践
    来自:[GXYCTF2019]禁止套娃首先打开一看,什么都没有:查看源码也啥都没有,没有hint。那这种情况下估计是源码泄露,我们用dirsearch扫一下:扫了一堆git出来,估计就是git泄露。这里就需要第二个工具githack,拿到源码文件:打开一看,确定了是文件包含:<?phpinclude"flag.php";echo......
  • WPF使用WebView2的空域问题的解决方案
    我在之前文章中介绍过WPF使用WebView2的空域问题(Airspaceissuse),距离那篇文章大半年后,那个issue下有一个第好用的第三方解决方案了,我这里介绍一下。引入Microsoft.Web.WebView2组件,同时引入CrissCross.WPF.WebView2组件<ItemGroup><PackageReferenceInclude="CrissCross.......
  • 组合式API和选项式API的区别
    (1)选项式API在vue2.x项目中使用的就是选项API写法代码风格:date选项写数据,methods选项写函数、、、、,一个功能逻辑的代码分散优点:易于学习和使用,写代码的位置已经约定好了缺点:代码组织性差,相似的逻辑代码不便于复用,逻辑复杂代码多了不好阅读。虽然提供了mixins用来封装逻......
  • 背景图
    ......
  • c# 初级 常用类
    文件操作类:Path类:静态类,操作文件路径类,位于io集合下Path.GetFileName() 快速获得文件路径Path.GetFileNameWithoutExtension() 快速获得不带扩展名的文件名Path.GetExtension() 快速获得文件扩展名Path.GetDirectoryName() 快速获得文件所在文件夹的名称path.GetFilePa......
  • 米联客MLK-CU01-040-060 AMD UltraScale核心模块硬件手册
    1整体概述MLK-CU01-040-060核心模块是米联客电子KintexUltraScale系列开发平台的全新高端产品。其核心模块集成电源管理:0.95V核心电源,最大输出24A。用户基于核心模块设计功能底板(提供功能底板设计方案)。降低项目功能底板设计难度和生产成本,加速项目开发。其应用领域包含高速通......
  • winform 解决 窗体清晰度问题
    在C#中让Winform应用程序窗口自动适应高DPI缩放不使用其他特殊组件库的情况下添加清单文件在末尾添加:<applicationxmlns="urn:schemas-microsoft-com:asm.v3"><windowsSettings><dpiAwarexmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true&l......