美国的马匹通常以hands和英寸来衡量。一只手基本上只有4英寸。所以,如果一匹马说62英寸。他的身高是15.2,不是15.5。这是因为小数点右边的部分实际上是小于4的剩余英寸,是整数手的一小部分,表示为小数。
或者更简洁,小数点右边的部分只能是1,a 2或3的单个数字。左边的部分应该是正整数。如果例如以英寸为单位的马匹测量值为4的倍数,则测量值也可以是整数正整数。
我在RegEx上几乎是一个假人,我无法在线找到这样的例子,我试图修改那些看起来很接近的例子已经以失败告终:)
以下是匹配示例:15.1
,9.2
,100.3
,16
以下是不匹配的示例:15.10
,15.01
,19.4
,-15.1
,16.0
哦,最后一件事。我将使用它来使用JavaScript进行验证,也可能使用C#。
答案 0 :(得分:2)
如果您只能使用.1
,.2
或.3
之后的整数或整数,则可以使用以下内容执行此操作:
\d+(\.[123])?
在末尾有适当的\b
(或^
/ $
)边界标记,具体取决于您用来匹配的方法(整个字符串或部分字符串)。
如果您不想要真正的国际化数字,则可以将\d+
替换为[1-9][0-9]*
之类的内容。
答案 1 :(得分:2)
正则表达式为^[0-9]+(\.[1-3])?$
在js:
var rx = /^[0-9]+(\.[1-3])?$/;
在c#
中var rx = new Regex(@"^[0-9]+(\.[1-3])?$");