我遇到的情况是我的数据来自服务器端,必须将句子分成两行,
Example: Payment: xyz is done Removal: Refund made
现在,我必须通过在<br>
之前添加一个Removal
标签将此句子分成两行
需要帮助,尝试过indexOf
,split
,但我无法解决。
答案 0 :(得分:4)
我认为Removal:
部分始终存在于您的string
中。
所以您可以做的是:
String#indexOf()
method 搜索单词Removal
的索引。String#substr()
method 根据此index
分为两部分。Array#join()
method 将这两个句子与<br />
连接起来。这应该是您的代码:
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
变量
Payment: xyz is done Removal: Refund made
Payment: xyz is done
之前的文本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);