Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
材质设计Lite插件正则表达式javascript_Javascript_Regex_Material Design - Fatal编程技术网

材质设计Lite插件正则表达式javascript

材质设计Lite插件正则表达式javascript,javascript,regex,material-design,Javascript,Regex,Material Design,我正在基于材质设计lite插件制作表单。 链接如下: 我对表单验证有问题,尤其是正则表达式 这是我的简单表格: <form action="#"> <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label"> <input class="mdl-textfield__input" type="text" pattern="-?[0-9]*(\.[0-9]+)?" i

我正在基于材质设计lite插件制作表单。 链接如下:

我对表单验证有问题,尤其是正则表达式

这是我的简单表格:

<form action="#">
  <div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
    <input class="mdl-textfield__input" type="text" pattern="-?[0-9]*(\.[0-9]+)?" id="sample4">
    <label class="mdl-textfield__label" for="sample4">Number...</label>
    <span class="mdl-textfield__error">Input is not a number!</span>
  </div>
</form>

号码。。。
输入不是一个数字!
我希望有这样的验证模式:

  • 输入金额不是字符串(仅数字0-9)
  • 分隔符必须为“,”
  • 我最多需要两个小数位
  • 我不能接受任何字符,除了 数字0-9和“,”
  • 输入金额不能小于0
  • 输入量必须从一个数字开始
  • 你能帮我弄一下这些正则表达式吗?我没有足够的知识,只是需要现成的模式。剩下的验证我将通过javascript进行

    谢谢大家!

    ^(?:[1-9][0-9]*?,?[0-9]{0,2}|[0](?:,[0-9]{0,2})?|)$
    
    这似乎符合您提供的所有标准, 你可以用这个来测试它

    它由3个“部分”组成,由
    |
    s分隔,主要测试3种不同的匹配

  • [1-9][0-9]*?,?[0-9]{0,2}
    -如果输入是一个从1-9开始的数字,然后是从0-9开始的数字的数量(或缺少),然后是可选的
    +0-2个从0-9开始的数字,则匹配
  • [0](?:,[0-9]{0,2})
    -如果输入为0,后跟可选的
    和0-9之间的0-2数字,则匹配
  • (末尾的
    |
    )$
    之间缺少任何内容)-如果输入为空,则匹配

  • 编辑:这里有一个版本不允许最后一个字符是

    小数点后最多2位如何?谢谢,这是一个很好的解决方案!当逗号是最后一个字符时,这种情况又如何呢?例如:“12”?@bigmeister:这并不能解决您的所有条件。@NitinDhomse如果您阅读了它所说的条件,我引用“输入量不能小于0”,从技术上讲,它可以0@bigmeister:小数位数表示小数点(.)后可接受的最大位数。如果您希望金额最大为2位数,则可以!