需要在Java语言中使用正则表达式

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

我需要一个正则表达式,让我可以

1)仅允许数字[已解决]

2)十进制最多2位[已解决]

3)在开始的示例中只允许1个零:'0.12'=>需要帮助

4)不允许仅使用零示例:'0000'=>需要帮助

下面是我目前使用的正则表达式,仅允许数字和小数点后2位:

Regex: /^\s*(?=.*[1-9])\d*(?:\.\d{0,2})?\s*$/g

提前感谢

javascript regex
1个回答
0
投票

基本上是您要在表达式中查找,为零或以1-9开头的任何数字。

const re = /^(?:0|[1-9]\d*)(?:\.\d{1,2})?$/

;[
    '0',
    '00',
    '10',
    '010',
    '123',
    '123.',
    '123.0',
    '123.00',
    '123.000',
    '0.1',
    '0.10',
    '0.100',
    '00.10'
]
    .forEach(
        v => console.log(re.test(v) ? '✓' : '✗', v)
    )

为了简洁起见,我省略了开头和结尾的空格匹配器-但是通常来说,如果允许的话,在使用它之前将.trim()的输入也更干净一点。还请注意,如果句号后面没有小数,则可能不需要匹配该句号。

  • .trim()
© www.soinside.com 2019 - 2024. All rights reserved.