javascript 正实数 正则表达式

//以下在javascript中运行结果,可以F12在浏览器console中自行测试
(1)var RegexTest = /^[1-9]+\d*(\.\d*)?$|^0?\.\d*[1-9]\d*$/
(2)var RegexTest = /^[1-9]+\d*(\.\d*)?$|^0?\.\d*[1-9]\d*|^0+[1-9]\d*(\.\d*)?$/

RegexTest.test("1."); //true
RegexTest.test("1.0"); //true
RegexTest.test("1.10"); //true
RegexTest.test("10."); //true (经评论提醒已修改)
RegexTest.test("10.10"); //true
RegexTest.test(".1"); //true
RegexTest.test("0.001"); //true
RegexTest.test("0.010"); //true
RegexTest.test("0.10"); //true
RegexTest.test("0.101"); //true

RegexTest.test("01"); //false 这里有争议,有些后端语言对string类型0打头不能正确解析成数字,建议按非常规输入直接js中判断false处理
//如果一定要上面的判断为true,可以把正则最后的$改为 |^0+[1-9]\d*(\.\d*)?$,即(2) )
RegexTest.test("0.0"); //false
RegexTest.test("0."); //false
RegexTest.test("00."); //false (整数部分重叠0,且小于1的浮点数,在绝大多数后端语言中都无法解析成数字,只要特征吻合立刻判断为false,小数点后面是什么已经不重要了,如果一定有需求请自行修改正则)


解释:分割符"|",正实数指的是大于0得任意数,不包括0自身

(1)式分为左右两个部分 左侧判断大于1的正实数,右侧补充0到1之间的正实数

(2)式分为左中右三个部分 右侧补充0打头重复,大于1的正实数

对于结尾重复0不做处理,如:1.1000  、  0.10000  可通过验证 为1.1 、0.1

大于1时,如果有需要可以前面重复0:如 001  可通过验证 为1,参考正则(2)

以 . 开头,如:.1   可通过验证 为0.1

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
JavaScript正则表达式和Java正则表达式在语法上有一些差异,但是它们的基本概念和用法是相似的。下面是将JavaScript正则表达式转换为Java正则表达式的一些常见规则: 1. 语法差异: - JavaScript正则表达式使用斜杠(/)作为定界符,而Java正则表达式使用双引号(")作为定界符。 - JavaScript正则表达式中的特殊字符需要进行转义,而Java正则表达式中的特殊字符不需要转义。 2. 字符类: - JavaScript正则表达式中的字符类使用方括号([])表示,而Java正则表达式中使用方括号([])或者Unicode转义(\p{...})表示。 - JavaScript正则表达式中的字符类可以使用连字符(-)表示范围,而Java正则表达式中需要使用Unicode转义(\uXXXX)表示范围。 3. 量词: - JavaScript正则表达式中的量词使用花括号({})表示,而Java正则表达式中使用花括号({})或者问号(?)表示。 - JavaScript正则表达式中的贪婪量词默认是贪婪模式,而Java正则表达式中的贪婪量词需要在后面添加问号(?)来表示非贪婪模式。 4. 边界匹配: - JavaScript正则表达式中的边界匹配使用插入符号(^)和美元符号($)表示,而Java正则表达式中使用\A和\Z表示。 5. 其他差异: - JavaScript正则表达式中的捕获组使用圆括号(())表示,而Java正则表达式中使用圆括号(())或者方括号([])表示。 - JavaScript正则表达式中的反向引用使用反斜杠加数字(\1、\2等)表示,而Java正则表达式中使用美元符号加数字($1、$2等)表示。 以上是一些常见的JavaScript正则表达式转换为Java正则表达式的规则。具体转换时,还需要根据具体的正则表达式进行适当的调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值