是否有正则表达式检查字符串是否只包含大写字母、小写字母、数字和下划线?


当前回答

这里有很多冗长的内容,我非常反对,所以,我的结论是:

/^\w+$/

\w等价于[A-Za-z0-9_],这就是你想要的(除非我们在混合中引入Unicode)。

使用+量词可以匹配一个或多个字符。如果你也想接受一个空字符串,使用*代替。

其他回答

对于那些寻找unicode字母数字匹配的人,你可能想做一些类似的事情:

^[\p{L} \p{Nd}_]+$

进一步的阅读请参阅Unicode正则表达式(Unicode Consortium)和Unicode正则表达式(Regular-Expressions.info)。

要检查整个字符串并且不允许空字符串,请尝试

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

下面的正则表达式匹配字母数字字符和下划线:

^[a-zA-Z0-9_]+$

例如,在Perl中:

#!/usr/bin/perl -w

my $arg1 = $ARGV[0];

# Check that the string contains *only* one or more alphanumeric chars or underscores
if ($arg1 !~ /^[a-zA-Z0-9_]+$/) {
  print "Failed.\n";
} else {
    print "Success.\n";
}

在计算机科学中,字母数字值通常意味着第一个字符不是数字,而是字母或下划线。后面的字符可以是0-9、A-Z、A-Z或下划线。

你可以这样做:

在PHP下测试:

$regex = '/^[A-Za-z_][A-Za-z\d_]*$/'

或者采取

^[A-Za-z_][A-Za-z\d_]*$

并将其放在您的开发语言中。

下面是一个正则表达式,用于使用量词指定至少1个字符且不超过255个字符

[^a-zA-Z0-9 _]{1,255}