我搜索了很多,找不到这个RegExp的解决方案(我不得不说我在Reg.表达方面不是很有经验).
我想测试1到36之间的数字,不包括0和37及以上.
我到目前为止所做的几乎是有效的(它不接受17,18,19,27,28,29)......
^[1-9]{1}$|^[1-3]{1}[0-6]{1}$|^36$;
Run Code Online (Sandbox Code Playgroud)
有谁可以帮助我吗?
har*_*rpo 26
你知道\d
吗,对吗?
^([1-9]|[12]\d|3[0-6])$
Run Code Online (Sandbox Code Playgroud)
在控制台中试试这个:
function test() {
for(var i = 0; i < 100; i++) {
if (/^([1-9]|[12]\d|3[0-6])$/.test(i.toString()) != (i >= 1 && i <=36)) {
document.write(i + "fail");
}
else
document.write(i + "pass");
document.write("<br/>");
}
}
Run Code Online (Sandbox Code Playgroud)
Mic*_*ann 15
^[0-9]|[0-2][0-9]|3[0-6]$
这是它的细分:
[0-9]
= 0-9的任何数字|
= OR[0-2][0-9]
='1'或'2',后跟0-9的任何数字|
= OR3[0-6]
='3',然后是0-6的任何数字.由于@mu太短,所以使用整数比较将更容易,更有效.这是一个示例函数:
function IsInRange(number)
{
return number > 0 && number < 37;
}
Run Code Online (Sandbox Code Playgroud)
尝试这个:
^[1-9]$|^[1-2][0-9]$|^3[0-6]$
Run Code Online (Sandbox Code Playgroud)
(1 到 9 之间的所有 1 位数字,所有 1x 和 2x 数字,以及 30 到 36 之间的 3x 数字)。
归档时间: |
|
查看次数: |
40272 次 |
最近记录: |