用于手中测量的正则表达式

时间:2015-04-02 05:04:04

标签: javascript c# regex

美国的马匹通常以hands和英寸来衡量。一只手基本上只有4英寸。所以,如果一匹马说62英寸。他的身高是15.2,不是15.5。这是因为小数点右边的部分实际上是小于4的剩余英寸,是整数手的一小部分,表示为小数。

或者更简洁,小数点右边的部分只能是1,a 2或3的单个数字。左边的部分应该是正整数。如果例如以英寸为单位的马匹测量值为4的倍数,则测量值也可以是整数正整数。

我在RegEx上几乎是一个假人,我无法在线找到这样的例子,我试图修改那些看起来很接近的例子已经以失败告终:)

以下是匹配示例:15.19.2100.316

以下是不匹配的示例:15.1015.0119.4-15.116.0

哦,最后一件事。我将使用它来使用JavaScript进行验证,也可能使用C#。

2 个答案:

答案 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])?$");