@zekin375

Как расставить не разрывные пробелов JS?

Подскажите куда капать и как лучше сделать

Стоит задача обрабатывать текст, проставлять после предлогов знак nbsp;

К примеру есть текст

«Как сделать программу в js»

Должен на выходе получится текст в html

«Как сделать программу вnbsp;js»
  • Вопрос задан
  • 2301 просмотр
Решения вопроса 1
Stalker_RED
@Stalker_RED
const prepositions = ["без", "между", "под", "в", "на", "по", "вокруг", "о", "по", "про"];

function addNbsp(str) {
  return str.replace(/(\S+?)( )/g, (_, p) =>
  p + (prepositions.includes(p.toLowerCase()) ? '|' : ' '))
}

Вместо | подставьте символ неразрывного пробела.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
andreichirkov
@andreichirkov
Frontend разработчикк
Если что в строку неразрывный пробел можно вставить символом: \u00A0
Ответ написан
Комментировать
Psixodelik
@Psixodelik
Преподаватель на Hexlet
1 вариант: Сделайте массив предлогов. Проходитесь по строке и ищите совпадение слова (часть строки с пробелом). Если это предлог, то просто заменяете пробел на неразрывный

2 вариант: Сделайте регулярку. Что-то в духе (^|\s)(в|и|или)\s
Ответ написан
Комментировать
Alexandre888
@Alexandre888
Javascript-разработчик
как-то так:
let str = "Как сделать программу в js"
let prepositions = ["без", "между", "под", "в", "на", "по", "вокруг", "о", "по", "про".......]

for (let i = 0; i < str.split(" ").length; i++) {
  for (let j = 0; j < prepositions.length; j++) {
    if (str.split(" ")[i] === prepositions[j]) str.split(" ")[i].replace(str.split(" ")[i], `${str.split(" ")[i]}\u00A0`)
  }
}
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы