我有如下字符串:
",'first string','more','even more'"
我希望将这个字符串转化为一个数组,但由于第一个逗号,它显然是无效的。我该如何从我的字符串中删除第一个逗号并将其变成一个有效的数组?
我想得到类似于以下的结果:
myArray = ['first string','more','even more']
我有如下字符串:
",'first string','more','even more'"
我希望将这个字符串转化为一个数组,但由于第一个逗号,它显然是无效的。我该如何从我的字符串中删除第一个逗号并将其变成一个有效的数组?
我想得到类似于以下的结果:
myArray = ['first string','more','even more']
要删除第一个字符,您应该使用:
var myOriginalString = ",'first string','more','even more'";
var myString = myOriginalString.substring(1);
我不确定这会是你想要的结果,因为你仍需要将其分割并创建一个数组。也许可以尝试以下代码:
var myString = myOriginalString.substring(1);
var myArray = myString.split(',');
记住,这里拆分后的每个字符串都包含'字符。
在这种特定情况下(始终有一个要删除的起始字符),您需要:
str.substring(1)
然而,如果你想检测逗号是否存在,并在存在时将其移除,可以使用以下类似的代码:
if (str[0] == ',') {
str = str.substring(1);
}
if (str[0] === ',')
只是为了稍微提高性能。 - Croot一句话描述
str = str.replace(/^,/, '');
我会回来的。
var s = ",'first string','more','even more'";
var array = s.split(',').slice(1);
假设你开始使用的字符串确实是一个String类型,就像你所说的,并且不是一个字符串数组。
// 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'"]
首先,用逗号分割字符串,可能会被单引号包围,
然后过滤掉非真值(空)部分。
通常我使用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()
也能完成这个任务。
s=s.substring(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});;
这将删除末尾的逗号和空格
var str = ",'first string','more','even more'";
var trim = str.replace(/(^\s*,)|(,\s*$)/g, '');
myString.slice(1)
即可。 - nbk