我有以下字符串的前导逗号:删除从字符串
",'first string','more','even more'"
我想变成一个数组这一点,但显然这不是有效的,由于第一个逗号。我怎样才能从我的字符串中删除第一个逗号,并使其成为一个有效的数组?
我想用这样的事情结束了:
myArray = ['first string','more','even more']
我有以下字符串的前导逗号:删除从字符串
",'first string','more','even more'"
我想变成一个数组这一点,但显然这不是有效的,由于第一个逗号。我怎样才能从我的字符串中删除第一个逗号,并使其成为一个有效的数组?
我想用这样的事情结束了:
myArray = ['first string','more','even more']
要删除第一个字符可以使用:
myOriginalString = ",'first string','more','even more'";
myString = myOriginalString.substring(1);
我不知道这将是你的结果因为你仍然需要分割它以创建一个数组。可能是这样的:
myString = myOriginalString.substring(1);
myArray = myString.split(',');
请记住,'字符将是在这里拆分每个字符串的一部分。
var s = ",'first string','more','even more'";
var array = s.split(',').slice(1);
这是假设你以字符串其实是一个字符串,像你说的,而不是字符串数组。
在这种特殊情况下(总有你要删除的启动单个字符),你会想:
str.substring(1)
不过,如果你希望能够检测如果逗号是存在的并删除它,如果是的话是这样的:
if (str.substring(0, 1) == ',') {
str = str.substring(1);
}
+1为条件的 – 2010-10-13 11:24:43
+1。它总是更好地假设逗号可能不在那里。 – JoeMoe1984 2014-06-23 19:17:23
这是一个更好的答案,应该是被接受的答案。 – 2018-02-07 06:59:14
将一个字符串到一个数组我通常使用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()
也做的工作。
假设字符串被称为myStr的:
// Strip start and end quotation mark and possible initial comma
myStr=myStr.replace(/^,?'/,'').replace(/'$/,'');
// Split stripping quotations
myArray=myStr.split("','");
注意,如果一个字符串可以是缺少在列表中,甚至无需其引号礼物,你要在相应位置的空白处阵列中,您需要手动编写分割以获得可靠的解决方案。
var s = ",'first string','more','even more'";
s.split(/'?,'?/).filter(function(v) { return v; });
结果:
["first string", "more", "even more'"]
第一分割用逗号可能由单引号包围,
然后过滤所述非truthy(空)份进行。
您可以直接使用与正则表达式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});;
你可以做,其他的事情参数与您要更换炭什么添加到帮助功能等
的一行
str = str.replace(/^,/, '');
我会回来的。
s=s.substring(1);
我喜欢让东西简单。
这将删除尾随逗号和空格
var str = ",'first string','more','even more'";
var trim = str.replace(/(^\s*,)|(,\s*$)/g, '');
只需使用'myString.slice(1);' – 2011-10-27 07:21:10
@NikhilBenKuruvilla这将删除,即使它不是一个逗号的任何字符。这里是第一个字符逗号移除http://stackoverflow.com/a/39047793/696535 – Pawel 2017-03-07 10:50:22
可能重复[删除Javascript中的第一个字符的字符串](https://stackoverflow.com/questions/4564414/delete-first - 字符串在JavaScript中) – 2017-10-25 10:42:02