黑马程序员---JS正则表达式

这篇博客介绍了如何使用JavaScript正则表达式进行邮箱、电话、手机和QQ号码的验证。通过示例代码详细解析了正则表达式的各个组成部分,如^表示开头,w代表字母数字下划线,*和+表示数量,以及如何使用test()方法检查字符串是否匹配正则模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 ---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

Js代码


function validEmail(email){
    var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
    return re.test(email);
}

以此为例,来分析一下正则表达式的使用方法。

 

    ^表示我们要用这个正则表达式检查以特定字符串开头的字符串。

    \w表示a~z、A~Z、0~9或下划线的任意单一字符。

    +表示前面的条目可以出现一次或多次。

 

    说明:这个示例中,/^\w+ 表示邮件字符串必须以a~z、A~Z、0~9或下划线组成的字符串开头。

 

    ( )表示一个组,这意味着后面将要引用圆括号中的内容,因此将它们放在一个组中。

    [ ]表示可以出现其中的任意一个字符。

    ?表示前面的内容可以出现0次或1次。

    *表示前面的内容可以出现0次或多次。

    $表示字符串在这里结束。

 

    说明:([\.-]?\w+)* 这部分中,方括号内包含 \.- ,表示允许用户输入点号或连字符0次或1次,由于点号在正则表达式中有特殊意义,因此要使用 \ 对其进行转义;点号或连字符后面必须出现a~z、A~Z、0~9或下划线组成的字符串;*表示圆括号中的内容可以出现0次或多次。

    @仅代表其本身,没有任何其他意义。

    (\.\w{2,3}) 这个组中,表示点号后面可以出现a~z、A~Z、0~9或下划线中的字符2次到3次。

    $表示字符串必须以前面这个组(\.\w{2,3}) 的内容结束,如.com、.cn、.com.cn等。

 

 

通用JS验证(手机,电话,邮箱,QQ)2010-05-04 18:59//定义邮箱,电话,手机,QQ,税友通验证标志
var email_Flag = false;
var phone_Flag = false;
var mobile_Flag = false;
var qq_Flag = false;
var syt_Flag = false;

//验证是否为空
function verifyIsNull(info_span,str){
var flag = false;
if(str == ""){
info_span.innerHTML = "对不起,您输入的内容为空。";
flag = true;
}
return flag;
}

//验证邮箱
function verfifyEmail(){
var strEmail = document.getElementByIdx_x("email").value;
var email_info = document.getElementByIdx_x("email_info");
if(verifyIsNull(email_info,strEmail)){
email_Flag = false;
return ;
}
var reg = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;
email_Flag = reg.test(strEmail);
if(email_Flag){
email_info.innerHTML = "恭喜!邮箱地址输入正确。";
}else{
email_info.innerHTML = "对不起,您输入的邮箱地址格式错误。";
}
}

//验证qq号码
function verifyQQ(){
var strQQ = document.getElementByIdx_x("qq").value;
var qq_info = document.getElementByIdx_x("qq_info");
if(verifyIsNull(qq_info,strQQ)){
qq_Flag = false;
return;
}
var reg = /^[1-9]\d{4,8}$/;
qq_Flag =  reg.test(strQQ);
if(qq_Flag){
qq_info.innerHTML = "恭喜!QQ号码输入正确。";
}else{
qq_info.innerHTML = "对不起,您输入的QQ号码格式错误。";
}
}

//验证电话号码
function verifyPhone(){
var strPhone = document.getElementByIdx_x("phone").value;
var phone_info = document.getElementByIdx_x("phone_info");
var reg = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/;
if(verifyIsNull(phone_info,strPhone)){
phone_Flag = false;
return ;
}   
phone_Flag = reg.test(strPhone);
if(phone_Flag){
phone_info.innerHTML = "恭喜!电话号码输入正确。";
}else{
phone_info.innerHTML = "对不起,您输入的电话号码格式错误。";
}
}

//验证手机号码
function verifyMobile(){
var strMobile = document.getElementByIdx_x("mobile").value;
var mobile_info = document.getElementByIdx_x("mobile_info");
if(verifyIsNull(mobile_info,strMobile)){
mobile_Flag = false;
return;
}
var reg0=/^13\d{9}$/;
var reg1=/^153\d{8}$/;
var reg2=/^159\d{8}$/;
var reg3=/^158\d{8}$/;
var reg4=/^150\d{8}$/;
if(reg0.test(strMobile) || reg1.test(strMobile) || reg2.test(strMobile) || reg3.test(strMobile) || reg4.test(strMobile)){
mobile_Flag = true;
}else{
mobile_Flag = false;
}
if (mobile_Flag){
document.getElementByIdx_x("mobile_info").innerHTML = "恭喜!手机号码输入正确。";
}else{
document.getElementByIdx_x("mobile_info").innerHTML = "对不起,您输入的手机号码格式错误。";
}
}

说明
test方法检查在字符串中是否存在一个模式,如果存在则返回 true,否则就返回 false。

正则表达式部分:
\d 代表一个数字
{7,8} 代表7-8位数字(表示电话号码)
{3,} 代表分机号码
d{2,3} 代表区号
\+]\d{2,3} 代表国际区号
^13\d{5,9}$/ //130–139。至少5位,最多9位
/^153\d{4,8}$/ //联通153。至少4位,最多8位
/^159\d{4,8}$/ //移动159。至少4位,最多8位

<input type="text" id="xxx" οnblur="verifyXxx();" οnfοcus="clearInfo(document.getElementByIdx_x('xxx'))" />
<span id="xxx_info"></span>

类别:javascript/ajax |  | 添加到搜藏 | 分享到i贴吧 | 浏览(100) | 评论 (0)  上一篇:spring2.5整合struts1.2.9(Mappi...    下一篇:关于 Java 对象序列化您不知道的... 相关文章:? JS正则验证邮箱/手机/电话的格式          ? JS 手机,邮箱,邮编,座机等常见验...
? 常用的js验证数字,电话号码,传真...          ? js邮箱验证代码
? js号码,邮箱验证          ? 统计输入字节数量,汉字为三字节,...
? (原创)JS 工具类 读取cookie 用...          ? JS验证邮箱 身份证 VISA 卡输入...
? JS jquery 验证邮箱          ? radio,select,生日,年份?,邮箱 ...

 

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值