Использование выражения Immediately-Вызываемой функции - самый простой и удобный способ заключить индексную переменную:
for (var i = 0; i < 3; i++) {
(function(index) {
console.log('iterator: ' + index);
//now you can also loop an ajax call here
//without losing track of the iterator value: $.ajax({});
})(i);
}
Это отправляет итератору i
в анонимный функцию которого мы определяем как index
. Это создает закрытие, где переменная i
сохраняется для последующего использования в любых асинхронных функциях внутри IIFE.
Вам не нужно иметь [0-9]
, поскольку \d
делает то же самое. Я разработал решения в зависимости от вашего точного запроса, поскольку у вас, кажется, есть два разных запроса. Это от 8 до 9 цифр или от 8 до 10 цифр, и включает ли это общее количество 0
? См. Ниже решения для обоих:
Случай 1:
должен быть 8 или 9 или 10 цифр
blockquote>Попробуйте:
/^0\d{7,9}$/ // or /^0\d{8,10}$/ if not including the initial 0 in the count
Случай 2:
начинается с 0 и должен иметь 8 или 9 или цифры.
blockquote>Попробуйте:
/^0\d{8,9}$/ // if the 8 or 9 digits does not include the initial 0 for the count /^0\d{7,8}$/ // if the 8 or 9 digits does include the initial 0 for the count
Подробности:
{8,9}
указывает соответствие 8 или 9 символов предыдущего токена.Если общее число цифр включает в себя начальный
0
, тогда просто замените{8,9}
на{7,8}
(таким образом общее число цифр равно 8 или 9). Если вы хотите, чтобы диапазон был от 8 до 10, как указано в заголовке, вместо{8,9}
используйте{8,10}
. Опять же, это будет{7,9}
вместо этого, если не учитывать начальный0
.