Material Design Lite plugin regex javascript



我正在研究基于材料设计精简插件的表单。以下链接:https://getmdl.io/components/index.html#textfields-section

我在表单验证方面遇到问题,尤其是正则表达式。

有我的简单形式:

<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>

我希望有这样的验证模式:

  1. 输入金额不是字符串(只有数字 0-9(
  2. 分隔符必须为 ",">
  3. 我最多需要 2 位小数
  4. 我不能接受任何字符,除了数字 0-9 和 ",">
  5. 输入金额不能小于0
  6. 输入金额必须从数字开始

你能帮我这些正则表达式吗?我对此没有足够的了解,只需要现成的模式。其余的验证我将通过javascript进行。

谢谢!

^(?:[1-9][0-9]*?,?[0-9]{0,2}|[0](?:,[0-9]{0,2})?|)$

这似乎符合您提供的所有标准,你可以用这个演示来测试它

它由 3 个"部分"组成,由 3 个不同匹配|的基本测试分开

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

编辑:这是一个不允许最后一个字符成为, https://regex101.com/r/dPM95O/4 的版本

最新更新