【问题标题】:alphanumeric is not working in jquery [duplicate]字母数字在jquery中不起作用[重复]
【发布时间】:2012-07-10 12:36:39
【问题描述】:

可能重复:
How to check for alphanumeric characters

嘿,我使用 alphanumbercic 在 jquery 中验证密码。它只验证字母,假设我只输入了它允许的数字。请指导我

问题

允许不使用字母

编码

letters = /^[0-9a-zA-Z]+$/;   
            if(!password.value.match(letters))   
            {   
                alert('Password must be alphanumeric');   
                signupForm.password.focus();   
                return false;   
            }

【问题讨论】:

    标签: jquery validation alphanumeric


    【解决方案1】:

    如果您的密码必须包含所有种大小写:大写字母、小写字母和数字,那么您需要创建 3 个正则表达式:

    var regexps = [/[A-Z]/,   //capital letter
                  /[a-z]/,    //small letter
                  /\d/ ];     //numeric digit
    //This regexp is for assuring that 
    //password does not contain other symbols than alphanumerics
    var nonAlphanumericRegExp = /[^0-9a-zA-Z]/;
    

    然后像这样验证:

    if(regexps.some(function(value){  return !value.test(password.value); }) ||
           nonAlphanumericRegExp.test(password.value)){
        alert('Password must be alphanumeric');   
        signupForm.password.focus();   
        return false; 
    }
    

    Live demo

    文档

    Array.some()

    RegExp.test()

    【讨论】:

    • 什么是some()?那么 value.test?
    • @JavaH 看我的更新,我稍微改了一下。
    【解决方案2】:

    我建议,可能:

    /([a-z])([0-9])/
    

    看起来匹配一组[a-z] 字母和[0-9] 数字。

    您的原始表达式中的问题似乎是它只查找与标识为a-zA-Z0-9 的范围的任何部分匹配的一个 组字符, 对于 only-numbers、only-letters 或 numbers and 个字母,这将匹配为 true。

    以上RegExp修改为:

    /(([a-z])+([0-9]))|(([0-9])+([a-z]))/
    

    JS Fiddle demo.

    上述更改的原因是,RegExp 将匹配 both a11a,使用 | (RegExp or) 匹配一个,或者另一个,但如果都没有找到,仍然返回false,如果找到,则返回true

    【讨论】:

    • 字母 = /^[([a-z])([0-9])]+$/;这是正确的吗?
    • 关闭,但我会省略^$,除非您需要第一个字符是字母,最后一个字符是数字?如答案所示,我还修改了 RegExp。
    • 它的工作......它必须允许一个大写字母......我需要任何大写或小写字母和数字
    • 请不要大喊大叫。如果它没有按要求工作,请say,我会看看。 =)
    • 酷...我只是困惑等待我会检查
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-29
    • 2017-07-12
    • 2013-03-28
    • 2013-03-05
    • 1970-01-01
    • 2014-12-30
    相关资源
    最近更新 更多