57

我正在尝试编写一个正则表达式,它将用于文本框以验证其内容以查看它是否在 1 到 35 之间。文本框中的字符可以是任何东西:数字、字母、标点符号、空格等.这是我到目前为止所拥有的:

^[:;,\-@0-9a-zA-Zâéè'.\s]{1,35}$

如您所见,我必须列出所有字符。有没有更简单的方法来说“所有”字符?

4

5 回答 5

62

像这样:.

表示除换行符以外的.任何字符(有时会但通常不包括在内,请检查您的正则表达式风格)。

您可以将表达式重写为^.{1,35}$,它应该匹配长度为 1-35 的任何行。

于 2012-05-09T15:18:18.700 回答
21

.当不在字符类中时,它通常是元字符。

所以使用^.{1,35}$. 但是,除非对它应用 dot-all 修饰符,否则dot不包含换行符。

您可以^[\S\s]{1,35}$在没有任何修饰符的情况下使用,这也包括换行符。

于 2012-05-09T15:24:08.273 回答
18

If you want to set Min 1 count and no Max length,

^.{1,}$
于 2017-03-06T07:27:01.843 回答
16

是的,.(点)会匹配任何字符。利用:

^.{1,35}$
于 2012-05-09T15:19:59.867 回答
6

如果您还想匹配换行符,那么您可能想要使用"^[\s\S]{1,35}$"(取决于正则表达式引擎)。否则,正如其他人所说,你应该使用"^.{1,35}$"

于 2012-05-09T15:21:14.640 回答