我需要一个数值范围为2-255的RegEx (用于Javascript),而且我很难为此目的修改类似的RegExes。
^([2-9]|1[0-6])$那是2-16,但我不能完全正确地得到第三个数字。
发布于 2017-02-09 18:58:11
^([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.
发布于 2017-02-09 19:06:01
使用RegExp.prototype.test()函数的解决方案:
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));
发布于 2017-02-09 18:58:24
^([2-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$https://stackoverflow.com/questions/42144685
复制相似问题