我有逗號分隔值的字符串:JavaScript字符串替換
var x = '1,2,10,11,12';
我需要刪除的Y中的價值。
x = remove(x,y);
問:是否有一個功能已經或是否需要將其轉換爲一個數組,y移除,然後將其轉換回一個字符串?
我有逗號分隔值的字符串:JavaScript字符串替換
var x = '1,2,10,11,12';
我需要刪除的Y中的價值。
x = remove(x,y);
問:是否有一個功能已經或是否需要將其轉換爲一個數組,y移除,然後將其轉換回一個字符串?
你可以做x.replace(y, "")
。有關更多信息,請參閱Mozilla docs。從phpjs.org
str_replace
analogon: http://phpjs.org/functions/str_replace:527
所以,你可以使用類似x=str_replace(y, '', x);
;)或使用正則表達式實現它自己!
編輯:好的,我想我錯了。也許Greg的答案是正確的:-)
PHP.js引起了我的陰謀,迷惑和厭惡,就像一個12歲的聊天室裏爭論宗教或蟑螂慢慢穿過我的布丁一樣。 – sdleihssirhc 2011-05-17 17:10:58
-1用於推薦PHPjs。你不需要那個。只有用例是嚴格的截止日期和有才華的PHP開發人員(誰不知道JavaScript)。 – Raynos 2011-05-17 17:16:20
好吧好吧,沒那麼糟^^ – tim 2011-05-17 17:27:34
假設你移除「Y」,其中y是一個索引,這樣做:
x = x.split(',').splice(y,1).join(',');
編輯:
在這種情況下,我會使用正則表達式。如果你希望避免的正則表達式,另一種解決方案是可供選擇:
while(x.indexOf(y) >= 0){
x.replace(y+',', '');
}
編輯:添加一個尾隨逗號替換,使得名單仍然是一個逗號分隔的列表。
OP說'y'是一個值... – 2011-05-17 17:10:12
y不是索引。 y是一個值。在這個例子中,它將是客戶ID或產品ID。 – 2011-05-17 17:12:32
你的意思是這樣嗎?
var arr = "1,2,1,2,3".split(",");
var arr2 = [];
for(var i = 0; i < arr.length; i++) {
if(arr[i] != "1") arr2.push(arr[i])
}
arr2.join(","); // "2,2,3"
有三樣東西用逗號在字符串的開頭檢查
y在字符串的末尾,前面加逗號
x.replace(new RegExp('((^|\\b)' + y + ',|,' + y +'$)'),'');
*只是*不夠,但這是一個有趣的起點 – 2011-05-17 17:02:08
也許我不明白這個問題。你是否匹配字符串或y中的數值? – 2011-05-17 17:03:16
請記住,對第一個參數使用字符串只會替換一次值。做'String.replace(/ value/g,「」);'會替換它的所有實例。 – 2011-05-17 17:10:37