在JavaScript中,如果你想使用正则表达式来匹配大于0且小于100的数字(包含整数和小数),你可以使用以下的正则表达式:
let regex = /^(?![0\.]+$)(?:(?:[1-9]\d?|99)(?:\.\d+)?|0\.[1-9]\d?)$/;
这个正则表达式的含义是:
^
表示字符串的开始。(?![0\.]+$)
是一个否定前瞻断言,确保字符串不是仅由0和点组成(即排除像"0.0.0"这样的无效数字)。(?:[1-9]\d?|99)
匹配1到99之间的整数。[1-9]
匹配1到9中的任意数字。\d?
表示前面的数字可以重复0次或1次,即匹配1到99。|99
表示或者匹配数字99。(?:\.\d+)?
是一个非捕获组,匹配小数点后跟一个或多个数字,这个部分是可选的,表示可以有小数部分。|
表示或者。0\.[1-9]\d?
匹配0.1到0.99之间的小数。0\.
匹配数字0后面紧跟一个小数点。[1-9]\d?
匹配1到99之间的数字,作为小数部分。$
表示字符串的结束。使用这个正则表达式,你可以验证一个字符串是否表示了一个大于0且小于100的数字。例如:
let regex = /^(?![0\.]+$)(?:(?:[1-9]\d?|99)(?:\.\d+)?|0\.[1-9]\d?)$/;
console.log(regex.test("50")); // true
console.log(regex.test("0.5")); // true
console.log(regex.test("99.99")); // true
console.log(regex.test("100")); // false
console.log(regex.test("0")); // false
console.log(regex.test("abc")); // false
请注意,这个正则表达式不会匹配科学记数法表示的数字,也不会匹配负数或大于等于100的数字。如果你需要匹配这些情况,你需要调整正则表达式以适应更广泛的范围。
领取专属 10元无门槛券
手把手带您无忧上云