给定单词的JavaScript断句

时间:2018-09-28 10:07:06

标签: javascript jquery regex string split

我遇到的情况是我的数据来自服务器端,必须将句子分成两行,

Example: Payment: xyz is done Removal: Refund made

现在,我必须通过在<br>之前添加一个Removal标签将此句子分成两行

需要帮助,尝试过indexOfsplit,但我无法解决。

6 个答案:

答案 0 :(得分:4)

我认为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/>'));

答案 1 :(得分:1)

您可以编写一个函数将此文本动态添加到要添加文本的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>

答案 2 :(得分:0)

只需在done之后将其拆分:

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

然后再添加done,将其连接起来,然后添加<br>

str = strArr[0] + "done <br>" + strArr[1];

答案 3 :(得分:0)

您可以使用RegEx捕获Removal之前的所有内容,之后的所有其他文本都包括“自行删除”。

因为您的文本结构不会改变。您将在matches变量

中完全包含3个部分
  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>'))

答案 4 :(得分:0)

您可以使用.replace()方法执行此任务,当它返回带有所需替换项的字符串时,您的第一个仍在原处且未被更改,因此您可能会在其他任务中使用它。

这是一个演示:

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

document.body.innerHTML = newStr;

答案 5 :(得分:0)

这是一个正则表达式:

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]);

编辑:

with replace更好

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