【问题标题】:RegEx for matching "A-Z, a-z, 0-9, _" and "."用于匹配“A-Z、a-z、0-9、_”和“.”的正则表达式
【发布时间】:2019-05-15 00:15:40
【问题描述】:

我需要一个正则表达式,它只允许输入中的 A-Z、a-z、0-9、_ 字符和点 (.)。

我试过了:

[A-Za-z0-9_.] 

但是,它没有用。我该如何解决?

【问题讨论】:

  • 可以在这方面提供更多信息,它有点模糊。一些示例输入会很好,并且您正在使用它的上下文,语言呢?

标签: regex


【解决方案1】:
^[A-Za-z0-9_.]+$

从字符串的开头到结尾,匹配这些字符中的一个或多个。

编辑:

注意^$ 匹配 的开头和结尾。启用多行时,这可能意味着一行匹配,但不是完整的字符串。

使用\A 作为字符串的开头,\z 作为结尾。

例如:http://msdn.microsoft.com/en-us/library/h5181w5w(v=vs.110).aspx

【讨论】:

  • 也可以是^[\w.]+$,觉得不是到处都能用。
【解决方案2】:

根据您提供的信息,我假设您想检查是否有人没有输入除您列出的字母之外的任何字母。为此,您需要搜索列出的字符以外的任何字符:

[^A-Za-z0-9_.]

并在您的代码中使用它,例如:

if ( /[^A-Za-z0-9_.]/.match( your_input_string ) ) {
   alert( "you have entered invalid data" );
}

怎么样?

【讨论】:

    【解决方案3】:

    您可以简单地使用 ^[\w.]+ 来匹配 A-Z、a-z、0-9 和 _

    【讨论】:

      【解决方案4】:

      也许,您需要更准确地说明什么不起作用以及您所处的环境。

      关于点在字符类中特殊的说法,并非在每个编程环境中都是如此。例如下面的 perl 脚本

      use warnings;
      use strict;
      
      my $str = '!!!.###';
      $str =~ s/[A-Za-z_.]/X/g;
      print "$str\n";
      

      生产

      !!!X###
      

      【讨论】:

        【解决方案5】:

        正则表达式:/^[a-zA-Z0-9_.]$/i

        这行得通

        【讨论】:

        • 你好 Prem Sai,你能在你的回答中解释为什么这有效吗?这对其他人来说也更容易理解。
        • 这是最简单的方法来验证我从赛季开始就使用这个 lang 的表达式。此外,您可以在sails js官方网站/文档中查看这一点。还有sailsjs.com/documentation/concepts/models-and-orm/validations
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-05
        • 2010-12-11
        • 2011-08-26
        • 1970-01-01
        • 1970-01-01
        • 2011-09-17
        • 2011-04-01
        相关资源
        最近更新 更多