Как ввести цифры для определенного номера - PullRequest
0 голосов
/ 08 октября 2009

Я хочу ввести только цифры в текстовое поле со следующим условием

  • максимум 3 цифры
  • максимум от 0 до 250..так 251 не принимаются.

Я написал следующий код до сих пор .. как принять и другие условия

this.value.match(/[^0-9]/g)

Ответы [ 6 ]

3 голосов
/ 08 октября 2009

Для этого вам не нужно регулярное выражение.

var val = parseInt($(this).val(), 10);
alert(val >= 0 && val < 250);
2 голосов
/ 08 октября 2009
var val = parseInt(this.value, 10);

if(isNaN(val)) {
  alert("Invalid amount: " + val);
  this.select();
  return false;
}

if(val < 0 || val > 250) {
  alert("Amount can range from 0 to 250");
  this.select();
  return false;
}
1 голос
/ 08 октября 2009

Regex полностью излишним для этого. Вы можете использовать JavaScript, чтобы проверить это на стороне клиента.

Если вы делаете это в ASP.NET, вы можете использовать элемент управления Range Validator, чтобы гарантировать, что пользователь вводит только целые числа от 0 до 250 (или любое минимальное и максимальное значения).

1 голос
/ 08 октября 2009

Если вы действительно хотите регулярное выражение (хотя, как уже упоминалось, другие варианты, вероятно, более подходящие), вот тот, который будет соответствовать 0-250:

/^([01]?[0-9]{1,2}|2([0-4][0-9]|50))$/

Разбивая это, мы используем оператор | для соответствия:

[01]?[0-9]{1,2}

Или

2([0-4][0-9]|50)

Первая часть соответствует 0 (или 00 или 000) - 199. Вторая часть использует аналогичную схему для соответствия 200 - 249 или 250.

1 голос
/ 08 октября 2009

this.value.match(/[^0-9]{1,3}/g)

даст вам от 1 до 3 цифр, но регулярное выражение, вероятно, является неправильным способом, так как вам все равно потребуется проверка границ после регулярного выражения.

Вероятно, было бы лучше использовать что-то вроде

if(this.value < 0 || this.value > 250) {
    // foo
}
1 голос
/ 08 октября 2009

попробуйте


var intVal = parseInt(this.value,10);
if( intVal > 0 && intVal < 250)
    // ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...