从正则入门到处理姓名手机号脱敏

限定符-数量

*	    重复零次或更多次
+	    重复一次或更多次。匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等价于 {1,}。
?	    重复零次或一次。匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 。? 等价于 {0,1}。
{n}	    重复n次
{n,}	重复n次或更多次
{n,m}	重复n到m次

解释

runoo+b,可以匹配 runoob、runooob、runoooooob 等,
+ 号代表前面的字符必须至少出现一次(1次或多次)。

runoo*b,可以匹配 runob、runoob、runoooooob 等,
* 号代表前面的字符可以不出现,也可以   出现一次或者多次(0次、或1次、或多次)。

colou?r 可以匹配 color 或者 colour,
? 问号代表前面的字符最多只可以出现一次(0次、或1次)。

\b	 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。

字符类

[aeiou]   匹配任何一个英文元音字母
[.?!]     匹配标点符号(.或?或!)。

\d   匹配一位数字同于  [0-9]  
\D	 匹配一个非数字字符。等价于 [^0-9]。
\w	 匹配字母、数字、下划线。等价于'[A-Za-z0-9_]'。
\W	 匹配非字母、数字、下划线。等价于 '[^A-Za-z0-9_]'。

1、例一

^[0-9]+abc$

^ 为匹配输入字符串的开始位置。

[0-9]+匹配多个数字, [0-9] 匹配单个数字,+ 代表前面的字符必须出现一个或者多个。

abc$匹配字母 abc 并以 abc 结尾,$ 为匹配输入字符串的结束位置。

2、例二

^[a-z0-9_-]{3-15}$

^ 为匹配输入字符串的开始位置。
以字母数字下划线开始到结束,3-15位字符
解释:3到15位字符,只允许包含数字字母下划线

3、例三

\(?0\d{2}[) -]?\d{8}。

\(?        匹配一次或零次的左括号
0          匹配1个数字零
\d{2}      匹配2个数字
[)-]?      匹配一次或零次的右括号或短横线
\d{8}      匹配8个数字

4、例四

(\d{1,3}\.){3}\d{1,3}
  
\d{1,3}匹配1到3位的数字,
(\d{1,3}\.){3}匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,
最后再加上一个一到三位的数字(\d{1,3})。
$1可以代表第一个()及其中内容 即$1 =(\d{1,3}\.),以此类推$1、$2、$3

5、例五

var userName = $("#userName").val().replace(/(^\s*)|(\s*$)/g, "");
以空替换用户名中的空格

6、姓名手机号脱敏处理

var phone ="13623021456";
var idcode ="440582199612056666";
var name ="陈妹";
var name1 ="陈美美";
var name2 ="欧阳美美";
 
phone =phone.replace(/^(.{3}).+(.{4})$/,"$1****$2");
idcode =idcode.replace(/^(.{4}).+(.{4})$/,"$1****$2");
name = name.replace(/^(.).+$/,"$1*");
name1 = name1.replace(/^(.).+(.)$/,"$1*$2");
name2 = name2.replace(/^(.{2}).+(.)/,"$1**$2");
 
 
console.log("phone",phone);
console.log("idcode",idcode);
console.log("name",name);
console.log("name1",name1);
console.log("name2",name2);

效果
在这里插入图片描述

参考:正则表达式30分钟入门教程

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值