正则表达式-如何验证非空,小数点后不以零开头,最多两个小数点,带或不带小数点(非逗号)

时间:2018-10-04 13:27:48

标签: javascript regex

我知道在StackOverflow上有很多此类正则表达式的答案。不幸的是,我无法将它们正确组合以满足我的需求。因此,任何帮助都是很重要的:

我有一个字段,其中: 1.应输入介于0.1-99之间的任何值 2.只有两位数字或小数点分隔 3.该字段不能为空 4.不能有空格或逗号或其他任何字符

示例不正确: 01或 0.0或  要么 1,1或 2.75或 27.5或 999或 ab

示例确定: 0.1或 1或 5.5或 10或 99

我希望这很清楚。如果没有例子,我会回答。谢谢!

3 个答案:

答案 0 :(得分:1)

哇,在AngularJS中就这么简单!!!只需在字段属性中添加参数“ required”,如果未填写任何内容,验证将失败!

<input type="text" name="light1LowTimer_OnVal" class="form-control" ng-model="t.on.val" required ng-pattern="/^\d{1,2}(\.\d)?$/"/>
        <span ng-show="form.light1LowTimer_OnVal.$invalid && showInvalids" class="formError">Incorrect value</span>

答案 1 :(得分:0)

以下正则表达式似乎适用于您的示例:

^(?:0\.[1-9]|[1-9]\.?\d?)$

它将任务分为两种方法:

  1. 如果第一位数字是0,则必须是小数点,然后是非零数字。
  2. 如果第一个数字不是零,则可能是小数点,然后可能是数字。

如果那对您失败,请提供更好的示例。

另请参阅Regex 101

答案 2 :(得分:0)

我想我已经解决了。这是相当意大利面条的代码,但似乎可以正常工作:

ng-pattern="/^(?:0\.[1-9]|[1-9]|[1-9]\.[1-9]|[1-9][0-9])$/"