正则表达式限制

时间:2020-02-03 22:41:16

标签: html regex

我是正则表达式的新手。我有一个文本字段,我需要将输入限制为数字和一个逗号。我知道如何限制数字。但是我还有另一个条件。如果用户输入逗号,则必须在此后输入另一个数字。对位数没有限制。只能有一个逗号。以下是所有有效输入: 123456 4567,8907

但是我不允许4567。 我有这种模式,pattern =“ [0-9] +([,] [0-9] +)?” 但它不起作用。

1 个答案:

答案 0 :(得分:1)

以下正则表达式允许任意数量的数字(包括无数字),并可以选择后面跟一个逗号,然后任意数量的数字。此模式必须使用^$符号从头到尾进行扩展,因此不允许使用其他字符:

^[0-9]*,?[0-9]+$

在这里尝试:

let inp = document.getElementsByTagName('input')[0];
let p = document.getElementsByTagName('p')[0];
inp.addEventListener('input', () => {
  let result = inp.value.match(`^[0-9]*,?[0-9]+$`);
  p.innerHTML = `Is "${inp.value}" allowed? ${result ? 'YES' : 'NO'}`;
});
body { font-family: monospace; }
<input type="text" placeholder="try a value here"/>
<p></p>