【问题标题】:jquery alphanumeric validationjquery 字母数字验证
【发布时间】:2012-07-16 23:50:16
【问题描述】:
$('#reg_submit').click(function () {
  var reg_password1 = $('#reg_password1').val();
  letters = /([a-z])([0-9])/; 
  var errorMessage =  '';

  if ( ! reg_password1.value.match(letters) )   
  {   
    errorMessage = "Password must be alphanumeric";
    $('#msg_regpass1').html(errorMessage).show();
  }
  else {
    $('#msg_regpass1').html('').hide();
  }
});

我使用上面的 jquery 代码将字母数字验证应用到我的注册页面。但是我得到了与 match() 相关的 javascript 错误,这样的匹配是未定义的。 任何人都可以建议上述问题的解决方案,或者请提供一些其他代码来获取上述代码的字母数字验证。 该字母模式也无法正常用于字母数字验证。任何人都可以建议其他模式

提前致谢

【问题讨论】:

  • 到目前为止有 8 个问题,但没有一个被接受的答案?如果有帮助,请accept an answer
  • @user1334095 你应该接受答案!!

标签: jquery validation alphanumeric


【解决方案1】:

使用

reg_password1.match(letters)

【讨论】:

    【解决方案2】:

    您的 jQuery .val(); 方法将返回值,因此更改此行

    if(!reg_password1.value.match(letters))   
    

    if(!reg_password1.match(letters))   
    

    我猜你也想要一个稍微不同的正则表达式。

    如果所有字符都必须是 a-z 或 0-9(不区分大小写),那么试试这个:

    /^[a-z0-9]*$/i
    

    但是,如果这确实是一个密码字段,你应该让用户选择像 $,#,!,@,%_,-,(,[,),] 等符号来启用它们选择一个强密码。 ;-)

    【讨论】:

    • 字母模式效果不佳。你能推荐另一个吗
    • 你想匹配什么?例如规则是什么?必须包含 xxx,不得包含 yyy 等。
    【解决方案3】:

    正如您所要求的只是一个建议,这里是一个开始:您可能想要的正则表达式是/^[a-z\d]+$/i。只有当您的正则表达式在字符串中的任何位置包含单个小写字母或数字时,您现有的正则表达式才会匹配;建议说每个字符都必须是。

    或者,您可以对正则表达式稍作改动:/[^a-z\d]/i,它匹配单个非字母数字值。然后调整你的逻辑说:如果我在这里匹配,那么字符串是无效的。

    match 未定义而言,请阅读regex-related methods in JavaScript。有些属于字符串,有些属于Regexp 类。

    【讨论】:

      【解决方案4】:

      这个对我有用:

      var reg_password1 = 'test123#';
      var letters = /^[a-zA-Z0-9]+$/;
      
      var result = letters.test(reg_password1);
      
      console.log(result);​
      

      DEMO

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-24
        • 1970-01-01
        相关资源
        最近更新 更多