【问题标题】:How to validate birth year?如何验证出生年份?
【发布时间】:2012-10-17 15:25:58
【问题描述】:

对于这个作业,我必须编写一个 javascript 代码来验证出生年份是否大于 1870 并且小于当前年份加一我如何将它们组合以显示相同的错误消息?

function isYearofBirthValid(birth) {
  "use strict";
  var alert = "";
  if(birth.length < 1870 && birth.length > 2013) {    <---- this part?
     alert("invalid year");
     return false;
  }
     return true;
}

【问题讨论】:

  • 参数birth是什么类型?
  • 不是您问题的答案,但如果您想避免硬编码最大年份,您可以使用new Date().getFullYear() + 1 而不是2013。

标签: javascript validation function


【解决方案1】:

您应该使用 or 运算符 (||) 而不是 and 运算符 (&amp;&amp;)。出生日期不能同时小于 1870 年和大于 2013 年。

另外,我不认为你要检查值的长度,而是值本身。

if (birth < 1870 || birth > 2013)

【讨论】:

    【解决方案2】:

    试试这个 if 语句:

    function isYearofBirthValid(birth) {
        if(birth < 1870 || birth > 2013){
            alert("invalid year");
            return false;
        }
        return true;
    }
    

    或者如果你真的想查询明年是什么

    function isYearofBirthValid(birth) {
        if(birth < 1870 || birth > new Date().getFullYear()+1){
            alert("invalid year");
            return false;
        }
        return true;
    }
    

    然后你像这样调用函数

    var valid = isYearofBirthValid(1978); //valid = true
    

    【讨论】:

    • &amp;&amp; birth &gt; new Date().getFullYear()+1 ?
    • 一个值不能同时小于1870和大于2013,所以条件永远为假。
    • @ianpgall:实际上这是在我发表评论半分钟后编辑的。它比我能看到的未来稍微多一点。 ;)
    • @ianpgall:回滚时间 15:29:17。你真的在回滚之前看到了那个编辑吗?
    • @Guffa 我猜是这样!哈哈,反正这个不重要。无论如何都应该对 OP 进行评论,因为它们的代码是 &lt; 1870 &amp;&amp; &gt; 2013(即使它已复制到此答案)
    猜你喜欢
    • 2014-10-13
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多