数值类型的正则表达式

下面列出了一些判读数值类型的正则表达式

"^\\d+$"  //非负整数(正整数 + 0)
"^[0-9]*[1-9][0-9]*$"  //正整数
"^((-\\d+)|(0+))$"  //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$"  //负整数
"^-?\\d+$"    //整数
"^\\d+(\\.\\d+)?$"  //非负浮点数(正浮点数 + 0)
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"  //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数
"^(-?\\d+)(\\.\\d+)?$"  //浮点数
### JavaScript 中用于匹配数值正则表达式 在 JavaScript 中,可以使用多种方式定义正则表达式来匹配不同的数值形式。以下是几种常见的模式: #### 整数匹配 要匹配整数(包括正负号),可以使用以下正则表达式: ```javascript var intPattern = /^[-+]?\d+$/; console.log(intPattern.test("123")); // true console.log(intPattern.test("-456")); // true console.log(intPattern.test("+789")); // true ``` 此模式解释如下: - `^` 表示字符串起始位置。 - `[-+]?` 可选的一个正号或负号[^3]。 - `\d+` 至少一位数字。 #### 浮点数匹配 对于浮点数(同样支持带符号的情况),可以采用更复杂的结构: ```javascript var floatPattern = /^[-+]?(?:\d*\.\d+|\d+\.\d*|\d+)$/; console.log(floatPattern.test("123.45")); // true console.log(floatPattern.test(".678")); // true console.log(floatPattern.test("-0.9")); // true console.log(floatPattern.test("+1e-2")); // false (科学计数法需额外处理) ``` 这里的关键部分在于 `(?:...)` 非捕获组内的三个选项之一会被选择执行,允许灵活地描述不同类型的浮点数格式[^1]。 #### 科学记数法匹配 如果还需要考虑科学记数法,则需要进一步扩展上述规则: ```javascript var scientificNotationPattern = /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][-+]?\d+)?$/; console.log(scientificNotationPattern.test("123e-2")); // true console.log(scientificNotationPattern.test("-1.23E+4")); // true ``` 该模式不仅涵盖了普通的十进制小数,还加入了对指数部分的支持,使得能够识别形如 `-1.23E+4` 的值[^2]。 通过这些例子可以看出,在构建具体的数值匹配正则表达式时,应当依据实际需求调整细节,确保既不会遗漏合法输入也不会误判非法数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值