2010-10-13 81 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, '');