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

Javascript 如何使用正则表达式检查给定值中至少3个字符,javascript,regex,Javascript,Regex,我有javascript代码来检查zipcode var regexObj = /^(?=[^-]*-?[^-]*$)[0-9-]*[0-9]$/; 我需要再增加一个条件,即 设置为用户必须输入至少3个字符 有人会说,我如何修改我的正则表达式,为什么你需要正则表达式来检查字符串的长度 var testString1 = 'this is long enough'; alert(testString1.length >= 3); // true var testString2 = 'no

我有javascript代码来检查zipcode

var regexObj =
/^(?=[^-]*-?[^-]*$)[0-9-]*[0-9]$/;
我需要再增加一个条件,即

设置为用户必须输入至少3个字符


有人会说,我如何修改我的正则表达式,为什么你需要正则表达式来检查字符串的长度

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

var testString2 = 'no';
alert(testString2.length >= 3); // false
相当于

/^[0-9-]*[0-9]$/
您可以在同一过程中添加长度检查,而无需提前查看

/^[0-9-]{2,}[0-9]$/
这至少是3个字符,最后一个是数字,其余是数字和
-
。看

您可能还希望限制第一个字符为
-
。您可能还需要3位数字,而不将
-
计算为所需的3个字符之一。把这些放在一起,我们将得到:

/^[0-9]-*[0-9][0-9-]*[0-9]$/

参见

您确定这是用于检查“ZipCode”(美国独有)吗?
维基百科:“邮政编码是美国邮政局(USPS)自1963年以来使用的一种邮政编码系统。ZIP一词是区域改善计划的首字母缩写,[1]正确地用大写字母书写,选择它是为了表明当寄件人使用邮政地址中的代码时,邮件的传输效率更高,因此速度更快。基本格式由五位十进制数字组成。20世纪80年代引入的扩展ZIP+4代码包括邮政编码的五位数字、连字符和f我们的数字比邮政编码更能确定准确的位置。”
/^(\d{5})(\d{4})$/
在HTML5中,您可以使用

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



这样做不需要正则表达式。只需添加一个额外的检查,
string.length>=3
,这可能比任何正则表达式都快。@kijin使用正则表达式匹配模式是非常明智的。也许你误读了这个问题,也许是我误读了。我能想到的最简单的原因是,如果他不想添加额外的检查,因为他已经在做RegEx了。IsMatch最好也检查最小长度,而不是添加额外的方法调用。@downvoters:有什么评论吗?说真的,正则表达式是一个错误的工具。错误的工具只用于检查长度,但OP也匹配一个模式。+1用于rubular链接,这是我最喜欢的创建正则表达式的新方法
/^[0-9]-*[0-9][0-9-]*[0-9]$/
<input pattern=".{3,}">