Страницы

Поиск по вопросам

пятница, 31 января 2020 г.

Как составить регулярное выражение для проверки вхождения числа в определенный диапазон? [дубликат]

#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 }

Комментариев нет:

Отправить комментарий