【问题标题】:Javascript regex for upper- and lowercase match用于大小写匹配的 Javascript 正则表达式
【发布时间】:2012-04-02 01:58:15
【问题描述】:

我的网络表单中有一个文本框。在 jQuery 中,我必须验证输入的文本应该至少有一个小写字母和一个大写字母。图案看起来如何?

【问题讨论】:

  • 搜索以 5 个字符开头的字符串,可以是任何大写或小写字母。除此之外,它不需要任何东西。请参阅下面的答案。

标签: javascript jquery regex uppercase lowercase


【解决方案1】:

假设 ERE:

/([A-Z].*[a-z]|[a-z].*[A-Z])/

或者如果你是一个纯粹主义者:

/([[:upper:]].*[[:lower:]]|[[:lower:]].*[[:upper:]])/

【讨论】:

  • POSIX 表示法与浏览器的兼容性有多好,你知道吗?
  • @yunzen - JavaScript 支持 Perl 兼容的正则表达式。如果你愿意,你可以compare flavours 和他们的能力。如果你问 PCRE 是否支持字符类,答案是肯定的。
  • @yunzen Javascript 的原生正则表达式非常糟糕,而且与 Perl 完全不兼容。 XRegexp 插件在解决这个问题方面还有很长的路要走。
  • @ghoti 但我的 Chrome RegEx 风格不支持 :lower::upper: POSIX 字符类。支持:Alpha::alpha:
  • @tchrist 感谢您的链接。我会为我品尝这个。
【解决方案2】:
/[a-z].*[A-Z]|[A-Z].*[a-z]/

在这里测试:http://www.regular-expressions.info/javascriptexample.html(没有/

【讨论】:

    【解决方案3】:
           //TODO check Number
           var checkNumber = false
           var matches = currentPassword.match(/\d+/g) ||newPassword.match(/\d+/g) || confirmPassword.match(/\d+/g)  ;
           if (matches != null) {
             checkNumber  = true;
           }
    
            //TODO check Letter
            var checkLetter = false
            var matchesLetter = currentPassword.match("[a-z\A-Z]") || newPassword.match("[a-z\A-Z]") || confirmPassword.match("[a-z\A-Z]") ;
    
            if (matchesLetter != null) {
                checkLetter  = true;
            }
    
            //TODO check upper and lower Letter
            var checkUpperLowerLtr = false
            var matchesUpperLowerLtr = currentPassword.match("[a-z].*[A-Z]|[A-Z].*[a-z]") || newPassword.match("[a-z].*[A-Z]|[A-Z].*[a-z]") || confirmPassword.match("[a-z].*[A-Z]|[A-Z].*[a-z]");
    
            if (matchesUpperLowerLtr != null) {
                checkUpperLowerLtr  = true;
            }
            //TODO Special
            var checkSpecial = false
            var matchesSpecial = currentPassword.match("/?[#?!@$%^&*-]") || newPassword.match("/?[#?!@$%^&*-]") || confirmPassword.match("/?[#?!@$%^&*-]") ;
            if (matchesSpecial != null) {
                checkSpecial  = true;
            }
    

    【讨论】:

      猜你喜欢
      • 2019-10-09
      • 2018-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多