【问题标题】:javascript verify is a number or only lettersjavascript验证是数字还是只有字母
【发布时间】:2013-03-11 21:22:55
【问题描述】:

我知道还有其他与此类似的问题,但无论如何我还是要问,我正在尝试验证邮政编码只输入了数字,而姓名只输入了字母。我尝试了一些 isNaN,但那不起作用。这是我试图验证的代码。

if(first_name.length < 2){
    alert("Please enter your first name.");
    return false;
}else if(zip=="" || zip.length < 5 ){
    alert("Please enter a valid zip code.");
    return false;

我尝试过这样的事情

}else if(zip=="" || zip.length < 5 || zip == isNaN ){
    alert("Please enter a valid zip code.");
    return false;

【问题讨论】:

  • /[a-zA-Z]+/.test(letters_only_string)/\d+/.test(num_only_string) 不够好?
  • 对这样的事情使用正则表达式。

标签: javascript verification


【解决方案1】:

简单的解决方案:正则表达式

测试 5 位数字

/^\d{5}$/.test(your_string);

测试是否只有字符(至少 3 个):

alert(/^[a-zA-Z]{3,}$/.test(your_string));

玩它:

http://jsfiddle.net/BAKpY/2/

【讨论】:

    【解决方案2】:

    如果您想要一个仅由数字组成的有效邮政编码,则需要更多信息才能确保其有效。

    var ext = null;
    ext = $("#inputId").value.match(/a-zA-Z/)[1];
    if(ext != null){
       alert("Please enter a valid zip code.");
    }
    

    【讨论】:

    • 您的 sn-p 中显然有错误。您将字符串的值属性匹配到正则表达式,字符串很可能不存在(值属性)。
    • 实际上它可以工作,这取决于您获取的是 div(.html().match) 还是 input(.value.match) 的值。 .match()[1] 在第一次匹配后返回字符串的其余部分。请记住,这只是检查字母
    • 您更新了代码,但仍然错误。您应该使用$(..).get(0).value$(...).val()
    猜你喜欢
    • 2016-10-07
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 2020-07-28
    相关资源
    最近更新 更多