我想\n在字串的第二個空格中插入,例如,如果一個字串有超過 1 個空格,這意味著我可以\n在第二個空格中添加,如果沒有,這意味著它只是一個單詞或一個空格的字串我想else在哪里可以正常列印它,所以在這個例子中,我有Hi I am here testing字串,然后我想用第二個空格替換\n它,Hi I\nam here testing所以在控制臺中它會以下一個方式列印該字串:
Hi I
am here testing
我試圖這樣做,replace(/ /g,"\n")但它取代了所有空格。我希望有人可以幫助我,謝謝。
uj5u.com熱心網友回復:
一種可能性是使用正則運算式從字串的開頭匹配到第二組空格(1 個或更多),并用換行符替換該組空格:
const str = 'Hi I am here testing'
const regex = /^(\S \s \S )\s /
const result = str.replace(regex, '$1\n')
console.log(result)
另一種可能性是將字串拆分為空格,然后用換行符將其重新連接在一起,替換第二個和第三個單詞之間的空格:
const str = 'Hi I am here testing'
const parts = str.split(/(\s )/)
const result = parts.slice(0, 3).join('') '\n' parts.slice(4).join('')
console.log(result)
uj5u.com熱心網友回復:
一個簡單的解決方案:
function breakLineOnSecondSpace(sentence) {
const SPACE = ' ';
var spaceCount = 0;
var secondSpaceIndex = -1;
for (var i = 0; i < sentence.length; i ) {
var char = sentence[i];
if (char == SPACE) spaceCount ;
if (spaceCount === 2) {
secondSpaceIndex = i;
break;
}
}
if (secondSpaceIndex > -1) {
return [
sentence.substring(0, secondSpaceIndex),
sentence.substring(secondSpaceIndex 1, sentence.length),
].join('\n');
} else {
return sentence;
}
}
console.log(breakLineOnSecondSpace('Hi I am here testing'));
作業示例:Stackblitz
uj5u.com熱心網友回復:
你可以用 foreach 以一種簡單的方式做到這一點
var myname = "alex is software engineer";
myname = myname.split("");
var actualString = "";
var spaceCounter = 0;
myname.forEach(element => {
if(element != " ")
{
actualString = element;
}
else
{
spaceCounter ;
if(spaceCounter == 2)
{
actualString ="\n";
return;
}
else
{
actualString = " ";
}
}
});
console.log(actualString);
uj5u.com熱心網友回復:
這是.replace()涉及回呼函式的另一種可能性:
const str = 'Hi I am here testing'
let i=0;res=str.replace(/\s /g,m=>1==i ?"\n":m);
console.log(res);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/492571.html
標籤:javascript 细绳 if 语句 代替
上一篇:如何計算列中的字串
