#javascript #регулярные_выражения
На этот вопрос уже даны ответы здесь: Алгоритм для преобразования диапазона номеров в регулярное выражение (3 ответа) Закрыт 3 года назад. Нужно задать регулярное выражение для диапазона чисел от 1 до 32. Если число больше или меньше нужно возвращать false.
Ответы
Ответ 1
Для проверки того, что значение находится в определенном диапазоне лучше привести его к числу и затем проверить. var v = parseInt(value); if(v>=1 && v=<32) return true; return false; Если очень хочется использовать регулярное выражение, можно использовать следующее /^(1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32)$/Ответ 2
/^([1-9]|[1-2][\d]|3[0-2])$/ [1-9] - числа от 1 до 9 | - ИЛИ [1-2][\d] - числа от 10 до 29 | - ИЛИ 3[0-2] - числа от 30 до 32 Альтернативный вариант /^([1-2]?[1-9]|[1-3][0-2])$/ [1-2]?[1-9] - числа от 1 до 9, числа от 11 до 19, числа от 21 до 29 | - ИЛИ [1-3][0-2] - числа от 10 до 12, числа от 20 до 22, числа от 30 до 32Ответ 3
32 это же степень двойки, можно битами проверять: 32 100000 31 011111 30 011110 .. 2 000010 1 000001 Число минус 1 должно быть от 0 до 31: от 00000 до 11111. if( ((x - 1) & 0x1F) === (x - 1)) { // OK } else { // NOT OK }
Комментариев нет:
Отправить комментарий