String#split
разбивает строки на части, где регулярное выражение соответствует части строки. Таким образом, ожидаемые результаты ожидаются: 001
при разбиении на /^0{1,3}/
(первые 1, 2 или 3 нуля) приведет к пустой строке (в начале строки) и 1
.
* 1006. * Вы хотите использовать регулярное выражение, которое всегда соответствует любому числу нулей в начале строки:
console.log('001'.match(/^0*/)[0].length); // => 2
console.log('01'.match(/^0*/)[0].length); // => 1
console.log('1'.match(/^0*/)[0].length); // => 0
Нет необходимости использовать ||
или какой-либо другой способ защиты, поскольку /^0*/
всегда соответствует любому количеству нулей (0*
) в начале строки(^
).