2017-07-15 44 views
1

我有一个选择框,其中包含负数,浮点数。 我如何验证,在parsely。如何验证荷兰芹验证中的负数,浮点数

<select class="form-control" data-parsley-pattern="^[0-9]*\.[0-9]{2}$" id="duration" name="duration"> 
    <option value="-1" >Not Strated</option> 
    <option value="0" >Just Strated</option> 
    <option value="1.6" >1.6 % Done</option> 
    <option value="2">2 % Done</option> 
    <option value="2.6">2.6 % Done</option> 
    <option value="3">3 % Done</option> 
    <option value="3.6">3.6 % Done</option> 
    <option value="4">4 % Done</option> 
    <option value="4.6">4.6 % Done</option> 
    <option value="5">5 % Done</option> 
    //And So on... 
</select> 

我已经尝试了一些解决方案,但它没有奏效。

data-parsley-pattern="^[0-9]*\.[0-9]{2}$" 

解决方案我发现验证香菜中的负数和浮点数是。

^-?[0-9]\d*(\.\d+)?$ 
+0

我从来没有听说过的香菜。但你的正则表达式似乎强制两个数字。你的数字都没有。试试看看它是否适合你。 https://regex101.com/r/i5qt3m/1'^ [ - 0-9] * \。?[0-9] $' – Andreas

+0

@Andreas先生,您可以将您的建议添加到答案,它正在工作。谢谢。 –

+1

对它进行了一些更改并添加了答案。不确定哪个最适合你。我相信他们是平等的。 – Andreas

回答

2

您的模式丢失了几个部分。
它没有捕获负数,所以我在第一个“组”中添加了一个 - 。
我补充吗?使浮动部分不可选。
我搬了。到[]并添加*使零或更多可能。

^[-0-9]+?[\.0-9]*$

https://regex101.com/r/i5qt3m/2

OP找到了答案:^-?[0-9]\d*(\.\d+)?$

+0

先生,它只验证浮点数而不是负数。 –

+0

我找不到任何有关欧芹正则表达式工作的文档。但是我发现了一个例子 - 用'\ -'逃跑了,不知道这是什么问题或者什么。 @always – Andreas

+0

'^ - ?[0-9] \ d *(\。\ d +)?$'这个正则表达式正在工作先生。 –