let a = ' lots of spaces in this ! '
console.log(a.replace(/\s+(\W)/g, '$1'))
Журнал показывает много пробелов в этом!
Вышеуказанное регулярное выражение делает именно то, что я хочу, но я пытаюсь понять, почему?Я понимаю следующее:
- s + ищет 1 или более пробелов
- (\ W) захватывает не алфавитно-цифровыесимволы
- / г - глобальный, поиск / замена всех
- $ 1 возвращает предыдущий буквенно-цифровой символ
capture / $ 1 - это то, что убирает пробел между словами Это и !
Я получаю это, но я не получаю это КАК удаляются все остальные пробелы ??Я не верю, что попросил их (хотя я рад, что они есть).
Я получаю это console.log(a.replace(/\s+/g, ' '));
, потому что замена заменяет 1 или более пробелов между буквенно-цифровыми символами одним пробелом '».
Я чешу голову, чтобы понять, КАК первый RegEx /\s+(\W)/g, '$1'
заменяет один или несколько пробелов одним пробелом.