pattern = new RegExp('([0-9]+([.][0-9]{1,2})?|[.][0-9]{1,2})');
它应该接受 00.00, 0.0, 00.25, 00.36, 00.56 ,, 222.25, 222.25, 2222.25,
不应该接受 000.25, 0000.25
答案 0 :(得分:1)
您可以使用此
^(?:(?!0{3,}).*)\.\d+$
^
-字符串的开头。(?:(?!0{3,}).*)
-在开始时避免超过2
零的条件。\.\d+
-匹配.
,后跟一个或多个数字。$
-字符串结尾答案 1 :(得分:1)
如果您的值不能以零开头,则可以使用alternation:
^(?:(?:0{1,2}|[1-9]\d*)?\.\d{1,2}|[1-9]\d*)$
这将匹配:
^
字符串的开头(?:
非捕获组
(?:
非捕获组
)?
关闭捕获组并将其设置为可选\.\d{1,2}
匹配点和1-2位数字|
或[1-9]\d*
匹配数字1-9,后跟数字0+次)
关闭非捕获组$
字符串的结尾如果确实要允许前导零,则可以在第二个交替之前添加匹配的0+乘以零0*
:
^(?:(?:0{1,2}|0*[1-9]\d*)?\.\d{1,2}|[1-9]\d*)$
答案 2 :(得分:0)
使用此:
^([0-9][1-9]+|0{0,2})\.[0-9]+$
说明:
在点\.
之前,它接受两个(|
)中的任何一个:
^[0-9]
代码以0到9之间的任意数字开头[1-9]+
,然后,您想要的数字在1到9之间或:
^0{0,2}
代码以最多两个零开头答案 3 :(得分:0)
尝试一下:
(?<![0-9.])((?:[0-9]{1,2}|[1-9][0-9]*)(?:[.][0-9]{1,2})?)(?![0-9.])
注意锚 (?<!)
和(?!)
。您可以根据需要省略锚点,但是即使该行包含数字以外的噪点,这些锚点也会使您的模式匹配。 (?<!X)
坚持X
不在比赛之前。 (?!X)
坚持X
不参加比赛。
[如果您要坚持X
确实在前面和/或之后,那么您应该以{{1}}和/或(?<=X)
为基础。]
根据您的示例的顺序,我的解决方案假定这些是可接受的:01.23; 00.23; 1.23。假设这些是不可接受的:011.23; 1.234。