我需要一个RegEx(对于Javascript),数字范围为2-255,我很难为此目的修改类似的RegExes。
^([2-9]|1[0-6])$
那是2-16,但我无法正确得到第三位数字。
答案 0 :(得分:5)
^([2-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])$
匹配2-9,10-99,100-199,200-249和250-255。
答案 1 :(得分:3)
使用var pattern = /^([2-9]|\d{2}|1\d{2}|2[0-4]\d|2[0-5][0-5])$/;
console.log(pattern.test(3));
console.log(pattern.test(300));
console.log(pattern.test(123));
console.log(pattern.test(255));
console.log(pattern.test(10));
console.log(pattern.test(256));
console.log(pattern.test(1));
console.log(pattern.test(199));
console.log(pattern.test(249));
函数的解决方案:
var inRange = function (num) {
var num = Number(num);
return !isNaN(num) && (num % 1 === 0) && num >= 2 && num < 256;
};
console.log(inRange(254.4));
console.log(inRange(255));
&#13;
但是,对于这种情况,还有一些 更好的 方法:
{{1}}&#13;
答案 2 :(得分:1)
^([2-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$
答案 3 :(得分:1)
使用RegExp 的最短解决方案之一可能是
^([2-9]\d?|1\d\d?|2([0-4]\d|5[0-5]))$
[2-9]\d?
- 匹配 2-9 , 20-99 1\d\d?
- 匹配 10-19 , 100-199 2([0-4]\d|5[0-5])
- 匹配 200-255 答案 4 :(得分:0)
想出来!它&#39; S:
\b(?:2[0-4][0-9]{2}|25[0-5]|[1-9][0-9]|1[0-9]{2}|[2-9])\b