Как добавить символ в начало каждого слова в строке в javascript? - PullRequest
6 голосов
/ 02 февраля 2020

У меня есть строка, например,

some_string = "Hello there! How are you?"

Я хочу добавить символ в начало каждого слова так, чтобы конечная строка выглядела как

some_string = "#0Hello #0there! #0How #0are #0you?"

Итак, я сделал что-то вот так

temp_array = []

some_string.split(" ").forEach(function(item, index) {
    temp_array.push("#0" + item)

})

console.log(temp_array.join(" "))

Есть ли один лайнер для выполнения этой операции без создания посредника temp_array?

Ответы [ 5 ]

5 голосов
/ 02 февраля 2020

Вы можете использовать регулярное выражение (\b\w+\b) вместе с .replace(), чтобы добавить свою строку к каждому новому слову

\b соответствует слову boun dry

\w+ соответствует одному или нескольким символам слова в вашей строке

$1 в .replace() - обратная ссылка для захвата группы 1

let string = "Hello there! How are you?";
let regex = /(\b\w+\b)/g;

console.log(string.replace(regex, '#0$1'));
5 голосов
/ 02 февраля 2020

Вы можете отобразить разделенные строки и добавить префикс. Затем присоединитесь к массиву.

var string = "Hello there! How are you?",
    result = string.split(' ').map(s => '#0' + s).join(' ');

console.log(result);
2 голосов
/ 02 февраля 2020

Вы должны использовать map () , он будет напрямую возвращать новый массив:

let result = some_string.split(" ").map((item) => {
    return "#0" + item;
}).join(" ");

console.log(result);
1 голос
/ 02 февраля 2020

Вы можете сделать это с помощью регулярного выражения:

let some_string = "Hello there! How are you?"

some_string = '#0' + some_string.replace(/\s/g, ' #0');
console.log(some_string);
0 голосов
/ 18 февраля 2020

Самое простое решение - регулярное выражение. Уже есть регулярное выражение. Однако можно упростить.

var some_string = "Hello there! How are you?"

console.log(some_string.replace(/[^\s]+/g, m => `#0${m}`))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...