Вы можете использовать
/^(?=.{5,10}$)[a-z][a-z]*\d[a-z\d]*$/i
См regex demo
Детали:
^
- начало строки
(?=.{5,10}$)
- строка должна содержать от 5 до 10, отличных от символов разрыва строки символов (это будет ограниченно потребляющим рисунком позже) до конца строки
[a-z]
- первый символ должен быть ASCII буква (i
модификатор делает случай шаблон нечувствительным)
[a-z]*
- 0+ ASCII буквы
\d
- 1 значного
[a-z\d]*
- 0 + ASCII цифры цифр
$
- конец строки.
var ss = [ "ABCABCABC1","ABCA1BCAB","A1BCABCA","A1BCAB","A1BCA","A1BC","1BCABCABC1","ABCABC","ABCABCABCD"]; // Test strings
var rx = /^(?=.{5,10}$)[a-z][a-z]*\d[a-z\d]*$/i; // Build the regex dynamically
document.body.innerHTML += "Pattern: <b>" + rx.source
+ "</b><br/>"; // Display resulting pattern
for (var s = 0; s < ss.length; s++) { // Demo
document.body.innerHTML += "Testing \"<i>" + ss[s] + "</i>\"... ";
document.body.innerHTML += "Matched: <b>" + rx.test(ss[s]) + "</b><br/>";
}
И чем проблема вы столкнулись с текущим регулярным выражением? – Rajesh
Вам необходимо использовать положительный lookbehind для хотя бы одного требования к числу. – wvdz
Итак, ваша проблема связана с требованиями к количеству? –