Разрывное предложение JavaScript для данного слова - PullRequest
0 голосов
/ 28 сентября 2018

У меня возникла ситуация, когда мои данные поступают со стороны сервера, и мне нужно разбить предложение на две строки,

Example: Payment: xyz is done Removal: Refund made

Теперь я должен разделить это предложение на две строки, добавив<br> тег до Removal

Нужна помощь, пробовал с indexOf, split, но я не могу найти обходной путь.

Ответы [ 6 ]

0 голосов
/ 28 сентября 2018

Вы можете написать функцию для динамического добавления этого текста в div, к которому вы хотите добавить текст.

Я предположил, что вы используете только JavaScript и HTML.

Пожалуйста, найдите код ниже.

function breakString(str){
  let breakIndex = str.indexOf("Removal");
  let arr = [str.substring(0,breakIndex), str.substring(breakIndex)];
  let parent = document.getElementById("myDiv");
  parent.innerHTML = arr[0] + "</br>" + arr[1];
}        
breakString("Payment: xyz is done Removal: Refund made");
<div id="myDiv"></div>
0 голосов
/ 28 сентября 2018

Вот регулярное выражение:

var s = "Payment: xyz is done Removal: Refund made";
var spl = s.split(/^(Payment: [\w]*)\s*(Removal: [\w]*)$/);
console.log(spl[1]+'<br>'+spl[2]);

РЕДАКТИРОВАТЬ:

с заменой еще лучше

var s = "Payment: xyz is done Removal: Refund made";
var spl = s.replace(/^(Payment: [\w]*)\s*(Removal: [\w]*)$/,"$1<br>$2");
console.log(spl);
0 голосов
/ 28 сентября 2018

Вы можете использовать метод .replace(), чтобы выполнить задачу, и, поскольку он возвращает строку с желаемой заменой (-ями), ваш первый все еще там и не тронут, так что вы, вероятно, будете использовать в другомЗадача для примера.

Вот демо:

var str = 'Example: Payment: xyz is done Removal: Refund made',
    newStr = str.replace(/(Removal:)/i, '<br />$1');

document.body.innerHTML = newStr;
0 голосов
/ 28 сентября 2018

Вы можете использовать RegEx для захвата всего, что предшествует Removal, и всего остального, что идет после текста, включая «Удаление самостоятельно».

Поскольку структура вашего текста не изменится.у вас будет ровно 3 части в переменной matches

  1. Сама строка Payment: xyz is done Removal: Refund made
  2. Текст перед удалением Payment: xyz is done
  3. И оставшийся текстRemoval: Refund made

chain  = "Payment: xyz is done Removal: Refund made"
matches = chain.match(/(.+)(Removal:.+)/);
console.log(matches.slice(1).join('<br>'))
0 голосов
/ 28 сентября 2018

Я предполагаю, что часть Removal: всегда присутствует в вашем string.

Итак, что вы можете сделать, это:

Этокаким должен быть ваш код:

var str = "Payment: xyz is done Removal: Refund made";
let ind = str.indexOf("Removal");

let sentences = [str.substr(0, ind), str.substr(ind)];
console.log(sentences.join('<br/>'));
0 голосов
/ 28 сентября 2018

Просто разделите его после done:

var str = "Payment: abc is done Removal: Refund made";
strArr.split("done");

Затем добавьте done обратно, объедините его и добавьте <br>:

str = strArr[0] + "done <br>" + strArr[1];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...