Как я могу проверить, номер в диапазоне от 0 до 28 в Javascript? - PullRequest
0 голосов
/ 03 сентября 2018

Я хочу проверить, число, которое я получаю, должно быть в диапазоне от 0 до 28 в Javascript.

У меня есть фрагмент кода вроде:

var letters = /[0-9]{1,2}/;
return letters.exec(value) != null;

Не могли бы вы помочь мне понять, что на самом деле делает вышеупомянутый синтаксис, я могу понять, если полученное значение равно нулю, то оно наверняка вернет FALSE, но я хотел знать, что на самом деле делает это регулярное выражение и как работает exec для переменной "буква".

Заранее спасибо, ребята, поделитесь, если у вас есть другой пример.

Ответы [ 4 ]

0 голосов
/ 05 июля 2019

.exec() на самом деле является методом объекта javascript regexp как RegExp.prototype.exec() и так хорошо документирован в MDN Web Docs mozila , цитируя его ниже:

RegExp.prototype.exec ()

Синтаксис:

regexObj.exec (ул)

Параметры:

ул

Строка, с которой сопоставляется регулярное выражение.

Возвращаемое значение:

Если совпадение успешно, метод exec () возвращает массив и обновляет свойство lastIndex объекта регулярного выражения. возвращенный массив имеет совпавший текст в качестве первого элемента, а затем один пункт для каждой совпадающей круглой скобки, содержащей текст это было захвачено.

Если совпадение не удается, метод exec () возвращает ноль и устанавливает lastIndex to 0 .

Если вы хотите проверить число в диапазоне от 0 до 28, используя regex, см. Пример ниже:

var letters = /^[0-9]$|^1[0-9]$|^2[0-8]$/;

function checkRange(regex,value){
 var msg = value;
 msg += (regex.exec(value) != null)?" is in range":" is not in range";
 msg += " of 0-28";
 console.log(msg) ;
}

checkRange(letters,20);
checkRange(letters,29);

Я привел приведенный выше пример, чтобы объяснить вам использование .exec, но для проверки диапазона номеров с помощью регулярных выражений используются только накладные расходы памяти.

, поэтому я предпочитаю использовать простое условие if или ternary, потому что оно простое и обеспечивает простоту, и оно работает так же в меньшем количестве кода, чего хочет каждый разработчик. :

//if condition
if(value >= 0 && value <= 28) { console.log('number is in range of 0-28'); } 

//ternary operator
var msg = (value >= 0 && value <= 28)?'number is in range of 0-28':'number is not in range of 0-28';
console.log(msg);  
0 голосов
/ 03 сентября 2018

Вы можете создать оператор if и проверить, находятся ли значения между 0 и 28

function check() {
  let getIp = +document.getElementById('input').value;
  if (getIp <= 28 && getIp => 0) {
    alert('In range')
  }

}
<input type='text' id='input'>
<button onclick="check()">Check</button>
0 голосов
/ 03 сентября 2018

Если вам нужно решение с регулярными выражениями, вы можете использовать это: /^([0-9]|[01][0-9]|2[0-8])$/

0 голосов
/ 03 сентября 2018

Я бы сказал, простое условие, как

if(number >= 0 && number <= 28) { ... }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...