如何编写Javascript正则表达式来接受8到15之间的数字范围(也带有十进制数字?

问题描述 投票:0回答:1

我想使javascript正则表达式仅匹配8到15之间的数字(而不是负值)。正则表达式还应接受小数点,例如8.7或9.5,以此类推,直到15。

/^0*([89]|1[0-5])$/

我已经尝试了上述正则表达式,但是不允许使用小数点。谁能帮助我制作javascript正则表达式?

javascript
1个回答
1
投票

您可以使用以下内容:

/^0*(?:[89]|1[0-5])(?:\.\d)?$/

但是将允许15.99999999,因为允许整数部分(15)。要限制它,您必须为其使用不同的大小写,例如:

/^0*(?:(?:[89]|1[0-4])(?:\.\d)?|15(?:\.0+)?)$/

Inspect on regex101.com

但是我不得不提到,使用正则表达式验证数字并不是一个好主意。

下面的代码性能更高,语义更多:

const number= +input
if (8<=number && number<=15){
  //Valid number
}
© www.soinside.com 2019 - 2024. All rights reserved.