RegEx用于匹配“A-Z,a-z,0-9,_”和“。”

时间:2009-11-12 11:33:40

标签: regex

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

我试过了:

[A-Za-z0-9_.] 

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

5 个答案:

答案 0 :(得分:53)

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

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

编辑:

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

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

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

答案 1 :(得分:5)

根据你所提供的工作,我会假设您要检查某人是否输入了除您列出的字母以外的任何字母。为此,您需要搜索除列出的字符以外的任何字符:

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

在代码的匹配中使用它,例如:

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

怎么样?

答案 2 :(得分:0)

也许,您需要更准确地指定哪些不起作用以及在什么环境中。

关于点在charackter类中特殊的说法,在每个编程环境中都不是这样。例如以下perl脚本

use warnings;
use strict;

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

产生

!!!X###

答案 3 :(得分:0)

regex:/ ^ [a-zA-Z0-9 _。] $ / i

这有效

答案 4 :(得分:0)

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