使用pattern属性匹配输入字段中的多个特定值之一

时间:2016-03-20 07:23:51

标签: javascript regex html5 validation

我希望用户只输入其中一个:0,1,1.25,1.5,1.75,2,2.25,2.5,2.75,3,4和5,并且必须使用pattern属性进行验证。我的代码是这样的:



<input class="grade-field" type="text" maxlength="4" pattern="[0-5]+(\.\d*)?" value="0">
&#13;
&#13;
&#13;

现在它只接受0-5.99之间的数字。我对使用正则表达式的匹配不是很熟悉所以我知道我在这里肯定是错的。如果我输入1.34,则输入有效,然后继续。

2 个答案:

答案 0 :(得分:1)

Poul Bak给出的解决方案是正确的。没有错。

但我试图让它更短。这可能看起来有点复杂,但如果仔细观察一下,为什么我缩短它是有道理的。

正则表达式: ^([0345]|[12](\.([27]?5))?)$

<强>解释

  • 使用字符类[0345],我们按字面意思匹配其中任何一个。

  • 让我们打破这个:[12](\.([27]?5))?

    • [12]字面上匹配12

    • (\.([27]?5))?是带小数部分的数字的可选小数部分。

Regex101 Demo

答案 1 :(得分:0)

您可以简单地将所需的值与“&#39; |&#39;像这样:

startactivity(intent)

这应该给你正确的测试答案。

编辑:我忘了点必须逃脱,尝试新的。