Как вставить переменную в регулярное выражение?

Имеется функция верификации:

function fieldVerificationInt(el, x){
  const allowedCodes = [8, 9, 27, 35, 36, 37, 38, 39, 46, 110];
  const pattern = /^\d{0,3}$/g;			
  document.getElementById(el).oninput = function(e) {
    const value = this.value;
    if( !(value.replace(/\s/g, '').match(pattern) || allowedCodes.some(code => code === e.keyCode)) ) this.value = value.slice(0, -1);
  }
}

Как сделать, чтобы в регулярное выражение вставить переменную? Т.е., вместо \d{0,3} нужно \d{0,x}.
  • Вопрос задан
  • 5930 просмотров
Решения вопроса 2
Xuxicheta
@Xuxicheta
инженер
new RegExp(`^\\d{0,${x}}$`, 'g')

запись /^\d{0,3}$/g это литерал, туда ничего не вставишь.
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега JavaScript
RegExp(`^\\d{0,${x}}$`, 'g')
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы