Я хочу использовать регулярное выражение для проверки строки длины (6-18):

var reg = new RegExp('^[a-zA-Z_0-9]{6, 18}$')

var res = reg.test('aaaaaa')

console.log(res)   // but there I get false

Написано ли мое регулярное выражение неправильно?

0
user7693832 14 Мар 2018 в 05:48

2 ответа

Лучший ответ

Я думаю, у вас есть мошенническое место в скобках. Удалите его, и ваш код заработает:

var reg = new RegExp('^[a-zA-Z_0-9]{6,18}$');  // NOT {6, 18}
var res = reg.test('aaaaaa');
console.log(res);
2
Tim Biegeleisen 14 Мар 2018 в 02:57

Вот альтернатива, если вы не хотите использовать регулярные выражения:

function isCorrectLength(str, min, max) {
  return str && typeof str === 'string' && str.length >= min && str.length <= max;
}

console.log(isCorrectLength('testing', 6, 18));
console.log(isCorrectLength('test', 6, 18));
0
th3n3wguy 14 Мар 2018 в 03:11