У меня есть строка цифр, которая должна иметь 9 символов, и у меня есть регулярное выражение, которое заменяет строку той же строкой и некоторыми пробелами; что-то вроде этого:javascript regex when diffrent length of string
TheString = '123456789';
TheSpacedString = TheString.replace(/(\d{1})(\d{2})(\d{2})(\d{2})(\d{2})/, '$1 $2 $3 $4 $5');
TheSpacedString format is now '1 23 45 67 89'
Проблема заключается в том, что, когда длина строки не 9, форматирование не работает: например, если у нас есть это:
TheString = '12345';
TheSpacedString = TheString.replace(/(\d{1})(\d{2})(\d{2})(\d{2})(\d{2})/, '$1 $2 $3 $4 $5');
format should be '1 23 45'
Но вместо того, строка равна '12345'
. В чем проблема с моим регулярным выражением? JsFiddle является here
Ваше регулярное выражение не соответствует - так, конечно, ничего не делает. –
Вы должны добавить подтверждение перед тем, как выполнить свою замену - если вы ожидаете 9 цифр, но не получите 9, это не должно быть ошибкой? – qJake