我需要一个正则表达式,它只允许输入中的A-Z,a-z,0-9,_字符和点(。)。
我试过了:
[A-Za-z0-9_.]
但是,它没有用。我该如何解决?
答案 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和_