@Gutnov

Как расшифровать данное регулярное выражение?

Может кто-нибудь на словах расшифровать данное выражение?
var numb = 10572,
pay = 11073;
rez = Math.round(numb*pay*2.1/100);
var outrez = (rez+'').replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');

Эту часть я понял - (\d)(?=(\d\d\d)+ число после которого идет число из 3 символов
А вот дальше не понятно, особенно это - ([^\d]|$))
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
saboteur_kiev
@saboteur_kiev
software engineer
var outrez = (rez+'').replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');

(\d) - цифра в группе
(?= - начало второй группы с look ahead
(\d\d\d)+ три цифры, возможно несколько раз подряд
([^\d]|$) - не цифра или конец строки
) - конец второй группы
$1 -заменяем на цифру из первой группы
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Zettabyte
@Zettabyte
Проф. восстановление данных ▪ Вопрос? См. профиль
дальше не понятно, особенно это - ([^\d]|$)

Насколько я понимаю, первая половина - это "любой символ, но не цифра". Т.е. "не 0 - 9". "^" - отрицание.
"|" - это "или". Т.е. общий смысл - либо "не цифра", либо конец строки ("$").
Ответ написан
sotvm
@sotvm
Умный поймёт , а дураку и так всё равно.
это какая то КРИВАЯ сортировка по номеру телефона
зы
просто загугли
"regex+номер телефона"
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы