Преобразовать строчку, удалить пробелы
Есть строчка:
const txt = ' #text # textx saad #asadsas '
Как лучше всего выполнить 3 операции
- удалить пробелы в начале строки
- Удалить все пробелы что после символа #
- Заменить все пробелы, что равно и более 2, на одинарные пробелы
Ответы (3 шт):
Автор решения: Faraday
→ Ссылка
Конкретно для указанной строки:
const str = " #text # textx saad #asadsas "
const result1 = str.trim(' ')
const result2 = str.replace('# ', '#')
const result3 = str.replace(' ', ' ')
Автор решения: ksa
→ Ссылка
Как лучше всего выполнить 3 операции
Предложу такой вариант...
Добавил еще замену нескольких #
подряд на одну #
.
const s = ' #text # textx ###test1 ### test2 saad #asadsas '
const r = /(?<=^|#)\s+|(\s+|#+)(?=\1)/g
console.log('"%s"', s.replace(r, ''))
Автор решения: Stanislav Volodarskiy
→ Ссылка
задача | то есть ... |
---|---|
удалить пробелы в начале строки |
... удалить все пробелы после начала строки |
Удалить все пробелы что после символа # |
... удалить все пробелы после решётки |
Заменить все пробелы, что равно и более 2, на одинарные пробелы |
... удалить все пробелы после пробела |
Все три задачи сведены к общей форме, которая решается так:
// символы после которых нужно удалять пробелы в группе
// |
// | повторить много раз
// | |
// v v
// -------- -
txt.replace(/(^|\s|#)\s+/g, '$1')
// --- --
// ^ ^
// | |
// | оставить только группу в круглых скобках
// |
// пробелы, которые будут удалены
$ node Welcome to Node.js v18.19.0. Type ".help" for more information. > const txt = ' #text # textx saad #asadsas '; undefined > txt.replace(/(^|\s|#)\s*/g, '$1') '#text #textx saad #asadsas '