我使用match只返回输入的数字。我需要将输入的位数限制为2。我该如何做到这一点?
const numbers = input.match(/[0-9]+/g);
wnvonmuf1#
我们可以匹配正则表达式模式^[0-9]{1,2}:
^[0-9]{1,2}
var input = "12345"; const numbers = input.match(/^[0-9]{1,2}/); console.log(input + " => " + numbers);
注意,我们使用^[0-9]{1,2}而不是^[0-9]{2},因为用户可能只输入一个数字。
^[0-9]{2}
fae0ux8s2#
const input = "1234567890"; const regex = /^\d{2}$/; const isTwoDigits = regex.test(input); if (isTwoDigits) { console.log("The input contains exactly 2 digits"); } else { console.log("The input does not contain exactly 2 digits"); }
voj3qocg3#
也许你可以使用属性maxlength="2"作为输入
maxlength="2"
7cwmlq894#
最简单的方法是把它写成两个数字
const numbers = input.match(/[0-9][0-9]/g);
另一种方法是把它写为计数为2的数字
const numbers = input.match(/[0-9]{2}/g);
也许您需要允许输入1个数字
const numbers = input.match(/[0-9][0-9]?/g); const numbers = input.match(/[0-9]|[0-9][0-9]/g); const numbers = input.match(/[0-9]{1,2}/g);
oxiaedzo5#
这将是您的正则表达式:
const numbers = input.match(/[0-9]{1,2}/);
我还将解释一些其他答案中可能不清楚的内容。
如果你的正则表达式以^开头,那么只有当字符串以它们开头时,你才会得到前2个数字:
^
const numbers = input.match(/^[0-9]{1,2}/);
如果将g追加到正则表达式中,则将获得所有数字对,而不仅仅是第一个数字对
g
const numbers = input.match(/[0-9]{1,2}/g);
为了更简单地编写正则表达式,我建议使用https://regex101.com,因为有一个真实的测试器和完整的备忘单与例子。
5条答案
按热度按时间wnvonmuf1#
我们可以匹配正则表达式模式
^[0-9]{1,2}
:注意,我们使用
^[0-9]{1,2}
而不是^[0-9]{2}
,因为用户可能只输入一个数字。fae0ux8s2#
voj3qocg3#
也许你可以使用属性
maxlength="2"
作为输入7cwmlq894#
最简单的方法是把它写成两个数字
另一种方法是把它写为计数为2的数字
也许您需要允许输入1个数字
oxiaedzo5#
这将是您的正则表达式:
我还将解释一些其他答案中可能不清楚的内容。
如果你的正则表达式以
^
开头,那么只有当字符串以它们开头时,你才会得到前2个数字:如果将
g
追加到正则表达式中,则将获得所有数字对,而不仅仅是第一个数字对为了更简单地编写正则表达式,我建议使用https://regex101.com,因为有一个真实的测试器和完整的备忘单与例子。