如何使用正则表达式检查给定值中的至少3个字符

Lin*_*P D 9 javascript regex

我有用于检查邮政编码的javascript代码

var regexObj =
/^(?=[^-]*-?[^-]*$)[0-9-]*[0-9]$/;
Run Code Online (Sandbox Code Playgroud)

我需要为此添加一个条件,即

使它成为用户必须输入至少3个字符

任何人都可以说,我怎样才能修改我的正则表达式

mar*_*cog 16

/^(?=[^-]*-?[^-]*$)[0-9-]*[0-9]$/
Run Code Online (Sandbox Code Playgroud)

相当于

/^[0-9-]*[0-9]$/
Run Code Online (Sandbox Code Playgroud)

您可以在同一个通道中添加长度检查,而无需前瞻

/^[0-9-]{2,}[0-9]$/
Run Code Online (Sandbox Code Playgroud)

这至少有3个字符,最后一个是数字,其余是数字和-.见http://www.rubular.com/r/oa9wVxggz0

您可能还希望将第一个字符限制为a -.您可能还需要3个数字,而不必将其-作为所需的3个字符之一.把这些放在一起我们会得到:

/^[0-9]-*[0-9][0-9-]*[0-9]$/
Run Code Online (Sandbox Code Playgroud)

请参阅http://www.rubular.com/r/Qhl843Txib


Mat*_*all 13

为什么在世界上你需要一个正则表达式来检查一个字符串的长度?

var testString1 = 'this is long enough';
alert(testString1.length >= 3); // true

var testString2 = 'no';
alert(testString2.length >= 3); // false
Run Code Online (Sandbox Code Playgroud)

  • 用于检查长度的错误工具,但OP也匹配模式. (7认同)
  • @downvoters:有什么意见吗?说真的,正则表达式是**工作的错误工具**. (3认同)
  • 我能想到的最简单的原因是,如果他不想添加额外的检查,因为他已经在做一个 RegEx.IsMatch 也可以检查最小长度,而不是添加额外的方法调用。 (2认同)

the*_*ude 5

在 HTML5 中,您可以使用模式

在您的示例中,您将执行以下操作,其中 3 是最小值,逗号后面的任何内容都是最大值(在您的情况下,您没有最大值):

<input pattern=".{3,}">
Run Code Online (Sandbox Code Playgroud)