时间:2021-07-01 10:21:17 帮助过:57人阅读
输出各个电话号码
<html>
<script language="javascript" type="text/javascript">
//创建要进行匹配的字符串
var objStr="这是我的手机号13100000000"
//创建正则表达式匹配手机号码
var re=/(13)(/d)(/d{8})/;//该正则表达式可以匹配手机号码以13开头的11为号码以()为子匹配的标志
document.write(objStr.replace(re,"$1$2********"));//处于隐私对字符串按照正则表达式的内容进行替换
//如果第二个子匹配结果,即手机号码中的第三位数字小于等于3则该手机号为联通号码,否则为其他运营商的号码
if(RegExp.$2<=3){
document.write("这是联通手机号");
}else{
document.write("这是移动或者电信手机号");
}
</script>
</html>
但是没进行一次匹配$n的值就改变一次,因此当我们匹配在一个字符串中出现多个手机号码时我们需要这样匹配
案例讲解demo2
代码如下:输出各个结果,并且判断运营商
<html>
<script language="javascript" type="text/javascript">
//创建一个需要匹配的字符串
var objStr="这是我的手机号码13112345678, 这是我朋友的手机号码13912345678";
//创建匹配手机号码的正则表达式对象,隐式创建
var reg=/(13)(/d)(/d{8})/g;//g为全局匹配参数,匹配11位手机号码;
//将字符串进行匹配如果符合结果则将返回结果放入数组中
var arr=objStr.match(reg);
with(document){
if(arr!=null){//如果匹配有结果
write("检测到"+arr.length+"个手机号码");//显示匹配到多少个电话号码
//循环
for(var i=0;i<arr.length;i++){
//对匹配出来的电话号码进行二次匹配,获取号码的第三个数字
arr[i]=arr[i].toString().replace(reg,"$1$2********");
//以列表的形式