Если вы «должны» использовать регулярное выражение, пропустите проблему, проанализировав принятые перестановки.
«диапазон от -2055 до 2055» может быть выраженный как:
«Число от 0 до 2055» может быть одним из конечного числа конкретных перестановок:
Обратите внимание, что для этого регулярного выражения нет необходимости различать диапазон " 0-9 "и" 1-9 ", и только последние два диапазона имеют какие-либо ограничения на диапазон принятых цифр / символов (обозначенных звездочкой).
. Каждая из вышеуказанных составных частей легко индивидуально выразить как регулярное выражение:
. Соответствующим выражением для всего совпадения будет:
-?0*([0-9]|[0-9][0-9]|[0-9][0-9][0-9]|1[0-9][0-9][0-9]|20[0-4][0-9]|205[0-5])
Или немного более сжато:
-?0*([0-9]{1,3}|1[0-9]{3}|20[0-4][0-9]|205[0-5])
Предполагая , вход содержит только «число» и ничего больше, поэтому последнее регулярное выражение :
^-?0*([0-9]{1,3}|1[0-9]{3}|20[0-4][0-9]|205[0-5])$
Если необходимо разрешить знак ведущего плюса, это становится:
^[-+]?0*([0-9]{1,3}|1[0-9]{3}|20[0-4][0-9]|205[0-5])$
Вот сценарий js , демонстрирующий, что проходит и что не удастся последнему регулярному выражению.
Это работает нормально для меня
function Timeline(params){ ... }
Timeline.prototype.zoomMax = function() { ... }
var timeline = []
timeline[0] = new Timeline(param1);
timeline[1] = new Timeline(param2);
timeline[0].zoomMax(); // Executes zoomMax function
Ваша первоначальная ошибка могла быть связана с неправильным объявлением метода zoomMax. Более подробная информация об этом здесь: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Not_a_function
Используйте ключевое слово class
, чтобы определить класс объекта
class Timeline
{
constructor(parameters) {
//property definitions, initialization...
}
zoomMax() {
console.log('zoom');
}
}
var timeline = [];
timeline[0] = new Timeline('parameters values');
timeline[1] = new Timeline('parameters values');
timeline[0].zoomMax();