我有以下字符串:
",'first string','more','even more'"
我想将其转换为数组但显然由于第一个逗号而无效。如何从字符串中删除第一个逗号并使其成为有效的数组?
我想结束这样的事情:
myArray = ['first string','more','even more']
答案 0 :(得分:311)
删除您要使用的第一个字符:
var myOriginalString = ",'first string','more','even more'";
var myString = myOriginalString.substring(1);
我不确定这将是你正在寻找的结果,因为你仍然需要拆分它以创建一个数组。也许是这样的:
var myString = myOriginalString.substring(1);
var myArray = myString.split(',');
请记住,'字符将成为此处拆分中每个字符串的一部分。
答案 1 :(得分:91)
在这种特定情况下(你想要删除的开头总是有一个字符)你会想要:
str.substring(1)
但是,如果您希望能够检测到逗号是否存在并将其删除(如果存在),则类似于:
if (str[0] == ',') {
str = str.substring(1);
}
答案 2 :(得分:9)
var s = ",'first string','more','even more'";
var array = s.split(',').slice(1);
假设你开头的字符串实际上是一个字符串,就像你说的那样,而不是一个字符串数组。
答案 3 :(得分:8)
One-liner
str = str.replace(/^,/, '');
我会回来的。
答案 4 :(得分:4)
假设该字符串名为myStr:
// Strip start and end quotation mark and possible initial comma
myStr=myStr.replace(/^,?'/,'').replace(/'$/,'');
// Split stripping quotations
myArray=myStr.split("','");
请注意,如果列表中的字符串可能缺少,甚至没有引号,并且您希望在数组中的相应位置有空位,则需要手动编写拆分以获得稳健的解决方案。< / p>
答案 5 :(得分:4)
var s = ",'first string','more','even more'";
s.split(/'?,'?/).filter(function(v) { return v; });
结果:
["first string", "more", "even more'"]
首先用逗号分隔,可能用单引号括起来,
然后过滤掉非真实(空)部分。
答案 6 :(得分: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()
也可以完成这项工作。
答案 7 :(得分:1)
您可以在javascript上使用regex直接替换函数,或者在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});;
您可以执行其他操作以将参数添加到帮助功能,以及要替换char等的内容。
答案 8 :(得分:1)
s=s.substring(1);
我喜欢保持简单。
答案 9 :(得分:0)
这将删除尾随的逗号和空格
var str = ",'first string','more','even more'";
var trim = str.replace(/(^\s*,)|(,\s*$)/g, '');
答案 10 :(得分:0)
删除开头或结尾字符:
function trimLeadingTrailing(inputStr, toRemove) {
// use a regex to match toRemove at the start (^)
// and at the end ($) of inputStr
const re = new Regex(`/^${toRemove}|{toRemove}$/`);
return inputStr.replace(re, '');
}