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


当前回答

对我来说,有一个问题,我想要区分alpha,数值和alpha数值,所以要确保一个字母数字字符串包含至少一个alpha和至少一个数值,我使用:

^([a-zA-Z_]{1,}\d{1,})+|(\d{1,}[a-zA-Z_]{1,})+$

其他回答

这对我很有用。你可以试试:

[\\p{Alnum}_]

Use

^([A-Za-z]|[0-9]|_)+$

...如果你想要明确,或者:

^\w+$

...如果您更喜欢简洁(Perl语法)。

嗯…问题:它是否至少需要一个字符?它可以是空字符串吗?

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

将至少做一个大写或小写字母数字或下划线。如果它的长度可以为零,那么只需用+替换*:

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

如果需要包含变音符字符(例如cedilla - ç),那么您将需要使用单词character,其功能与上述相同,但包括变音符字符:

^\w+$

Or

^\w*$

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

/^\w+$/

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

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

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

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