繁体   English   中英

if ... else if javascript

[英]if… else if 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不...我做错了什么?

基于查看你的正则表达式,我认为你需要在phoneValue测试中反转逻辑。 你想要else if子句在它与phoneValue正则表达式不匹配时执行,如下所示:

else if (phoneClass.test(el.className) && !phoneValue.test(el.value)) {

phoneValue.test(el.value)解析为false 这就是为什么else if不解雇。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM