JavaScript中数字的正则表达式

JavaScript中数字的正则表达式,javascript,regex,Javascript,Regex,我想要一个只用于数字的正则表达式,不少于3位和多于7位,而且它不应该接受字符 我尝试了(/^[0-9]{3,7}$/)-但它接受了一些类似“e”的字符。例如:1e3、23e4、123e4都失败了。我猜1e3是一个数字,而不是字符串。e表示“的幂乘以10”,因此1e3表示1 x 10^3=1000,23e4表示230000。如果是这种情况,当您将数字1e3转换为字符串时,输出将是“1000”,它表示一个不少于3位且不超过7位的数字,因此您的正则表达式与此匹配是正确的。使用您的尝试显示代码how/^

我想要一个只用于数字的正则表达式,不少于3位和多于7位,而且它不应该接受字符


我尝试了
(/^[0-9]{3,7}$/)
-但它接受了一些类似“e”的字符。例如:1e3、23e4、123e4都失败了。

我猜
1e3
是一个数字,而不是字符串。
e
表示“的幂乘以10”,因此
1e3
表示1 x 10^3=1000,
23e4
表示230000。如果是这种情况,当您将数字
1e3
转换为字符串时,输出将是“1000”,它表示一个不少于3位且不超过7位的数字,因此您的正则表达式与此匹配是正确的。

使用您的尝试显示代码how
/^[0-9]{3,7}发布一些有效输入和预期输出$/
对您来说失败了?为什么需要一个regexp?只要做
!isNan(val)&&&+val>=100&&+val<100000000
。顺便说一句,这里没有人关心是否有急事。请把问题写清楚。“但是它接受了一些像‘e’这样的字符。例如:1e3、23e4、123e4都失败了。”。它是接受还是失败?或者你的意思是“例外”?@anubhava:是的,我也试过了,但没有成功。嗯,他说他的regexp与用科学记数法写的数字不匹配。我猜OP说的是“它正在接受…‘e’。[用‘e’显示的数字]没有通过[被拒绝]。”让我们拭目以待,看看他/她是如何反应的。@JamesNewton:你说得对,所有这些数字的长度都在3-7个字符之间。我必须把这张支票放在只接受数字的文本字段上。那么如何区分1e3是数字还是字符串呢?在JavaScript中,可以使用
typeof
。看到这个了吗