2010-10-13 80 views
156

我有以下字符串的前導逗號:刪除從字符串

",'first string','more','even more'" 

我想變成一個數組這一點,但顯然這不是有效的,由於第一個逗號。我怎樣才能從我的字符串中刪除第一個逗號,並使其成爲一個有效的數組?

我想用這樣的事情結束了:

myArray = ['first string','more','even more'] 
+39

只需使用'myString.slice(1);' – 2011-10-27 07:21:10

+0

@NikhilBenKuruvilla這將刪除,即使它不是一個逗號的任何字符。這裏是第一個字符逗號移除http://stackoverflow.com/a/39047793/696535 – Pawel 2017-03-07 10:50:22

+0

可能重複[刪除Javascript中的第一個字符的字符串](https://stackoverflow.com/questions/4564414/delete-first - 字符串在JavaScript中) – 2017-10-25 10:42:02

回答

272

要刪除第一個字符可以使用:

myOriginalString = ",'first string','more','even more'"; 
myString = myOriginalString.substring(1); 

我不知道這將是你的結果因爲你仍然需要分割它以創建一個數組。可能是這樣的:

myString = myOriginalString.substring(1); 
myArray = myString.split(','); 

請記住,'字符將是在這裏拆分每個字符串的一部分。

7
var s = ",'first string','more','even more'"; 

var array = s.split(',').slice(1); 

這是假設你以字符串其實是一個字符串,像你說的,而不是字符串數組。

83

在這種特殊情況下(總有你要刪除的啓動單個字符),你會想:

str.substring(1) 

不過,如果你希望能夠檢測如果逗號是存在的並刪除它,如果是的話是這樣的:

if (str.substring(0, 1) == ',') { 
    str = str.substring(1); 
} 
+8

+1爲條件的 – 2010-10-13 11:24:43

+1

+1。它總是更好地假設逗號可能不在那裏。 – JoeMoe1984 2014-06-23 19:17:23

+0

這是一個更好的答案,應該是被接受的答案。 – 2018-02-07 06:59:14

3

將一個字符串到一個數組我通常使用split()

> var s = ",'first string','more','even more'" 
> s.split("','") 
[",'first string", "more", "even more'"] 

這幾乎是你想要的。現在,你只需要剝離前兩個和最後一個字符:

> s.slice(2, s.length-1) 
"first string','more','even more" 

> s.slice(2, s.length-2).split("','"); 
["first string", "more", "even more"] 

爲了從字符串中提取一個子我通常使用slice()substr()substring()也做的工作。

2

假設字符串被稱爲myStr的:

// Strip start and end quotation mark and possible initial comma 
myStr=myStr.replace(/^,?'/,'').replace(/'$/,''); 

// Split stripping quotations 
myArray=myStr.split("','"); 

注意,如果一個字符串可以是缺少在列表中,甚至無需其引號禮物,你要在相應位置的空白處陣列中,您需要手動編寫分割以獲得可靠的解決方案。

4
var s = ",'first string','more','even more'"; 
s.split(/'?,'?/).filter(function(v) { return v; }); 

結果:

["first string", "more", "even more'"] 

第一分割用逗號可能由單引號包圍,
然後過濾所述非truthy(空)份進行。

1

您可以直接使用與正則表達式JavaScript的替換功能或定義一個幫助功能在PHP LTRIM(左)和RTRIM(右):

1)替換爲:

var myArray = ",'first string','more','even more'".replace(/^\s+/, '').split(/'?,?'/); 

2)幫助功能:

if (!String.prototype.ltrim) String.prototype.ltrim = function() { 
    return this.replace(/^\s+/, ''); 
}; 
if (!String.prototype.rtrim) String.prototype.rtrim = function() { 
    return this.replace(/\s+$/, ''); 
}; 
var myArray = ",'first string','more','even more'".ltrim().split(/'?,?'/).filter(function(el) {return el.length != 0});; 

你可以做,其他的事情參數與您要更換炭什麼添加到幫助功能等

4

的一行

str = str.replace(/^,/, ''); 

我會回來的。

0
s=s.substring(1); 

我喜歡讓東西簡單。

0

這將刪除尾隨逗號和空格

var str = ",'first string','more','even more'"; 
var trim = str.replace(/(^\s*,)|(,\s*$)/g, '');