关于正则的试用验证身份证 年龄 邮箱 手机 替换*号

2017-10-16  本文已影响0人  胖太_91bf

1.将手机号的4大7位替换成*:
使用replace()方法代码如下:

// 匹配手机号首尾,以类似“123****8901”的形式输出
'12345678901'.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');

此段正则匹配字符串中的连续11位数字,替换中间4位为*号,输出常见的隐匿手机号的格式。
如果要仅得到末尾4位,则可以改成如下形式:

// 匹配连续11位数字,并替换其中的前7位为*号
'15110280327'.replace(/\d{7}(\d{4})/, '*******$1');

补充注释:正则表达式中的括号即可用于分组,同时也用于定义子模式串,在replace()方法中,参数二中可以使用$n(n为数字)来依次引用模式串中用括号定义的字串。

2.正则手机号验证:

/**
 * 验证手机号码
 * 
 * 移动号码段:139、138、137、136、135、134、150、151、152、157、158、159、182、183、187、188、147
 * 联通号码段:130、131、132、136、185、186、145
 * 电信号码段:133、153、180、189
 * 
 * @param cellphone
 * @return
 */
public static boolean checkCellphone(String cellphone) {
String regex = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}$"; 
return check(cellphone, regex);
}
 
/**
 * 验证固话号码
 * 
 * @param telephone
 * @return
 */
public static boolean checkTelephone(String telephone) {
String regex = "^(0\\d{2}-\\d{8}(-\\d{1,4})?)|(0\\d{3}-\\d{7,8}(-\\d{1,4})?)$";
return check(telephone, regex);
}

还有一种简单的写法:

/^1[3|4|5|8][0-9]\d{8}$/

^1代表以1开头,现在中国的手机号没有是其它开头的,以后不一定啊
[3|4|5|8] 紧跟上面的1后面,可以是3或4或5或8的一个数字,如果以后出现190开始的手机号码了,就需要如下[3|4|5|8|9]
[0-9]表示0-9中间的任何数字,可以是0或9
\d{4,8} 这个\d跟[0-9]意思一样,都是0-9中间的数字, {4,8}为4到8位, {8}为8位数字

3.正则验证身份证:

var checkId = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;


function isCardNo(card)  
{  
   // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X  
   var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;  
   if(!reg.test(card) )  
   {  
       alert("身份证输入不合法");  
       return  false;  
   }  
}  

4.正则验证邮箱格式
第一种:比较简单,容易理解

var checkEmail = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;

解释一下这对代码:
开始必须是大(A-Z)小(a-z)写字母和数字(0-9)和下划线()和横杠(-), + 代表匹配1到多次,然后是@, 后边是任意字符 后边是 . 和任意字符, 比较简单, 值匹配最基本的邮箱格式
适用于这几种情况:
1、纯数字
比如:123456@jb51.net
2、纯字母
3、字母数字混合
4、带点的
比如:web.blue@jb51.net
5、带下划线
比如:web_blue@jb51.net
6、带连接线
比如:web-blue@jb51.net
第二种: 第一种方式不支持的严重情况:在开头和结尾出现特殊字符 '
'

上一篇下一篇

猜你喜欢

热点阅读