如何在HTML文字输入中使用Regex模式

时间:2018-06-22 07:12:38

标签: regex html5 validation

我想限制HTML5格式的文本输入字段。我只需要它的值从1到5

我的代码是

   A = [0, 1]; 
   B = [0, 1, 3, 1, 4, 5, 6]; 
   % Split B into cells 
   C{1} = B(1:3) ;    % this can be coded if more splits are required 
   C{2} = B(4:end) ;
   % removing the lements 
   for i = 1:2
       C{i}(C{i}==A(i))=[] ;  % remove the elements in C{i} present in A(i)
   end
   cell2mat(C)

进行匹配(期望):

 <input type="text" name="count" pattern="[1-5][0-9-.]{1,10}" value="1" required>

不匹配(期望):

1
1.5
1.584
2
4.68756
5

现在发生了(问题):

  • 不验证非十进制值(1、2、3、4和5)。
  • 验证5.1到5.9

1 个答案:

答案 0 :(得分:1)

您可以使用

pattern="[1-4](?:\.\d+)?|5(?:\.0+)?"

HTML5引擎将其解析为^(?:[1-4](?:\.\d+)?|5(?:\.0+)?)$。参见regex demo

详细信息

  • ^(?:-字符串的开头和非捕获组的开头
  • [1-4]-从14的数字
  • (?:\.\d+)?-.和1+个数字的可选序列(小数部分可以包含任意数量的任何数字)
  • |-或
  • 5-匹配5
  • (?:\.0+)?-.和1+个零的可选序列(如果整个部分为5,则小数部分可以包含任意数量的零)
  • )$-外部“容器”组的结尾和字符串的结尾。

要允许前导零,请使用

pattern="0*(?:[1-4](?:\.\d+)?|5(?:\.0+)?)"
         ^^^^^                          ^