Javascript reg ex нужно целое число от 1 до 999999? - PullRequest
3 голосов
/ 21 декабря 2010

Хотелось бы решить это самостоятельно, но я никогда не понимал регулярных выражений. Они кажутся такими сильными. Я хотел спросить, где лучше всего изучать javascript reg ex, но это было субъективно, и я не хотел, чтобы мой вопрос был закрыт. У меня есть текстовое поле в веб-форме, когда оно имеет значение, это значение должно быть целым числом от 1 до 999999. Я уже использую числовой плагин jquery, чтобы разрешить только цифры, все другие нажатия клавиш отклоняются, есть реализация onBlur , что если некоторое регулярное выражение не сопоставлено, будет вызван обратный вызов ... Это тот код ...

$.fn.numeric.blur = function()
{
var decimal = $.data(this, "numeric.decimal");
var callback = $.data(this, "numeric.callback");
var val = $(this).val();
if(val != "")
{
    var re = new RegExp("^\\d+$|\\d*" + decimal + "\\d+");
    if(!re.exec(val))
    {
        callback.apply(this);
    }
}
}

Могу ли я изменить это регулярное выражение, чтобы убедиться, что val является действительным целым числом от 1 до 999999? Любая помощь будет оценена. Также очевидно, что я хотел бы сделать это сам, какой простой способ выучить регулярные выражения javascript? Большое спасибо всем вам. Всем отличного отдыха!

Приветствия
~ ck в Сан-Диего

Ответы [ 4 ]

7 голосов
/ 21 декабря 2010

В этом конкретном случае я бы рекомендовал не использовать регулярное выражение. Просто используйте старый добрый Javascript:

if( typeof decimal === 'number' && (decimal > 1 && decimal < 999999) ) {
     // here we go
}

Чтобы преобразовать значение в число, вы можете использовать оператор + или .parseInt()

var val = +$.trim($(this).val());
if( val && (decimal >= 1 && decimal <= 999999) ) {
}
5 голосов
/ 21 декабря 2010

Это бы сработало:

[0-9]{1,6}

Я бы предложил вместо этого использовать целочисленную функцию анализа / проверки.

2 голосов
/ 21 декабря 2010
var re = new RegExp("[1-9][0-9]{0,5}");

Должен это сделать, и лучший ресурс для регулярных выражений, вероятно, http://www.regular -expressions.info /

2 голосов
/ 21 декабря 2010

Это не проблема регулярных выражений.Посмотрите на функцию JQuery .validate .Вы можете установить требования к полю в диапазоне.

...