首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果...else if javascript

如果...else if javascript
EN

Stack Overflow用户
提问于 2012-05-17 04:09:28
回答 2查看 2.6K关注 0票数 1

我正在做一个表单验证,我的代码有问题:

代码语言:javascript
运行
复制
var reValue = /^\s*$/;      
var phoneClass = /(^|\s)phoneValidate(\s|$)/;              
var phoneValue = 
     /^[01]?[- .]?(\([2-9]\d{2}\)|[2-9]\d{2})[- .]?\d{3}[- .]?\d{4}$/;  

for (var i=0; i < iLen; i++) {
    el = allElements[i];

    if(phoneClass.test(el.className) && reValue.test(el.value)){
        // The field is empty.
        aMessages += 'Please enter a phone number in: '+ el.name +'.\n';
    }
    else if (phoneClass.test(el.className) && phoneValue.test(el.value)) {
        // The field is not a valid phone number
        // Advise user to fix it
        aMessages += 'Please enter a valid phone number in: '+ el.name +'.\n';
    }
}

第一个IF语句工作,并在字段为空时显示消息,而ELSE if由于某种原因没有...我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-17 04:14:38

基于您的正则表达式,我认为您需要颠倒phoneValue测试上的逻辑。您希望在与phoneValue正则表达式不匹配时执行else if子句,如下所示:

代码语言:javascript
运行
复制
else if (phoneClass.test(el.className) && !phoneValue.test(el.value)) {
票数 2
EN

Stack Overflow用户

发布于 2012-05-17 04:13:13

phoneValue.test(el.value)解析为false。这就是else if没有触发的原因。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10625946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档