2017-05-13 111 views
2

當知道每個字符串的索引時,是否有一種快速且簡單的方法從字符串中刪除多個系列的字符?從字符串中刪除多個字符串

下面是一個例子。

Hello you lovely world! 

我想刪除這兩個youworld!

+0

什麼是輸入和什麼輸出... – Kossel

+0

索引什麼?你如何定義「系列角色」? –

回答

1

你可以考慮寫自己的方法分割多個索引

檢查下面的代碼片段

var str = "Hello you lovely world!" 
 
var arr = str.split(" ") 
 
multiSplice([1, 3]) 
 

 
function multiSplice(indexes) { 
 

 
    indexes.sort(function callback(a, b) { 
 
    return a - b 
 
    }) 
 
    for (let i = 0; i < indexes.length; i++) { 
 
    const index = indexes[i] - i 
 
    arr.splice(index, 1) 
 
    } 
 
} 
 
console.log(arr.join(" "))

希望它可以幫助

+0

非常感謝! – scaniatv

0

var str = $('div').text().replace(/you/g, ''); 
 
$('div').text(str); 
 

 
var str = $('div').text().replace(/world/g, ''); 
 
$('div').text(str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<div id="text">hello you lovely world!</div>

0

您可以使用replace刪除的話

var _sstring = 'Hello you lovely world!' 
 
var newstr = _sstring.replace('you', '').replace('world', '') 
 
console.log(newstr)

您還可以使用正則表達式在一個回合中

更換

var _sstring = 'Hello you lovely world!' 
 
var newstr = _sstring.replace(/you|world|/gi, '') 
 
console.log(newstr)

0

簡單地轉換到陣列和拼接項目出它

var str = "Hello your lovely world"; 
 
var array = str.split(" "); 
 
array.splice(1,3);

1

試試這個:

var str = 'Hello you lovely world!'; str.replace(/(you).*(world)/,'lovely') 
0

下面的代碼將產生字符串「你好可愛」,具體如下:

var str = "Hello you lovely world!"; 
var arr = str.split(" "); 
arr.splice(1, 1); 
arr.pop(); 
str = arr.join(" "); 
console.log(str); 

demo

代碼拼接「你」從數組。然後,該數組的pop()方法擺脫了「世界」。

或者您可以使用str中的替代方法使用正則表達式,如下所示:

var str = 'Hello you lovely world!'; 
var re = /you|world!|[" "]/g; 
var str2 = str.replace(re,"").replace("lovely"," lovely"); 
console.log(str2); 

demo

部分字符串匹配「你」或「世界!」或者通過提供帶有正則表達式的str.replace()作爲其第一個參數而不是簡單的字符串來替換空格,從而將空格轉換爲空字符串,就像在第二次使用替換時一樣,這將有效地在str2中插入空格。