簡體   English   中英

從字符串中刪除字符並返回帶有刪除字符的新字符串

[英]Remove characters from string and return new string with removed characters

我正在嘗試從字符串中刪除一些字符並返回刪除的字符。 這是我的代碼......

 function removeFromString(string, start, charToRemove){ var newString = '' newString = string.slice(start, charToRemove); return newString } alert(removeFromString ('Hello', 0, 3)) //lo 

我想出了如何返回剩余的字符,但我無法弄清楚如何返回被刪除的字符。

提前致謝!

您可以將字符串轉換為數組,使用splice方法拆分未使用的項,然后將數組中的結果項連接到字符串。

 var arr = Array.from('Hello'); var items = arr.splice(3, arr.length); var result = items.join(''); console.log(result); 

您可以映射字符並刪除給定范圍內的字符。

 function removeFromString(string, start, charToRemove) { return Array.from( string, (c, i) => i >= start && i < start + charToRemove ? '': c ).join(''); } console.log(removeFromString ('Hello', 0, 3)) //lo 

我修改了你自己的代碼以返回剩余的字符:

 function removeFromString(string, start, charToRemove){ var newString = ''; newString = string.slice(0, start) + string.slice(start+charToRemove); return newString; } console.log(removeFromString ('Hello', 0, 3)) //lo 

string.slice(start, charToRemove)將返回一個新的字符串值,該值是通過從索引start到索引charToRemove的變量string的字符串值中獲取所有字符來創建的。

現在調用示例, string變量中的字符串值為:

H e l l o
0 1 2 3 4

你給出的start索引是0, charToRemove是3,所以我們得到一個新的字符串值,它包含索引0,1和2的字符,即Hel

如果你想要從索引3開始的所有東西你需要給slice方法一個3作為偏移,即

'Hello'.slice(3)

但是,我並不完全確定你的目標是什么。 如果要獲取字符串中的最后n字符,可以給出像string.slice(-2)這樣的負偏移量。

您可以使用substring來獲取要刪除的部分,並將其替換為空字符串。 這樣我們就不需要循環,也不需要將字符串轉換為數組。

 function removeFromString(str, start, charToRemove){ let end = start+charToRemove let strToBeRemoved = str.substring(start, end) return str.replace(strToBeRemoved, "") } console.log(removeFromString ('Hello', 0, 3)) //lo console.log(removeFromString ('Hello', 2, 2)) //Heo console.log(removeFromString ('Hello', 1, 3)) //Ho 

只需讓你的函數返回這個:string.substr(0,start)+ string.substr(charToRemove + 1)

這是一個“multislice”函數,它在特定位置剪切字符串並返回一個切片數組。 例如, segment(hello, 0, 3)返回[hel, lo]

 function segment(str, ...positions) { let last = 0, res = [] for (let pos of positions) { res.push(str.slice(last, pos)) last = pos } if (last < str.length) res.push(str.slice(last)) return res } console.log(segment('Hello', 0, 3)) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM