JavaScript正则表达式 - 匹配最后2位数字并在数值范围内检查

时间:2016-06-17 03:31:33

标签: javascript regex range

我有一个字符串,如" 33232323232120"它可以是不同长度的。我想选择最后两位数字并检查它们是否在一个范围内,例如例如,数字必须介于0和5之间。

到目前为止我所拥有的:

\d{1}[0-5]$

这与最后2位数字正确匹配,但错误地匹配" 20"在上面的例子中,即数字不在0和5之间。

有人可以提供建议吗?

2 个答案:

答案 0 :(得分:1)

你只需要

[01][0-9]$

请参阅regex demo

[01]匹配10[0-9]匹配任何数字。因此,您从0019匹配。

var vals = ["33232323232120","23445301","23445302","23445303","23445304","23445305","23445306","23445307","23445308","23445309","234453010","245841511","245841512","245841513","245841514","245841515","245841516","245841517","245841518","245841519","521","531"];
var rx = /[01][0-9]$/;

// Demo

document.body.innerHTML += "Pattern: <b>" + rx.source + "</b><br/>";                               
for (var s = 0; s < vals.length; s++) {
  document.body.innerHTML += "Testing \"<i>" + vals[s] + "</i>\"... ";
  document.body.innerHTML += "Matched: <b>" + rx.test(vals[s]) + "</b><br/>";
}

答案 1 :(得分:0)

您好我想选择最后两位数字\d{2}$
如果您想选择最后一个数字,即使它只是一个数字(0-9),您也可以使用\d{2}$|\d$

你的正则表达式在我的审判here中发挥作用 根据我的理解,您的代码将选择所有十位的最后2位数和0-5

的单位