从字符串中删除前导逗号

我有以下字符串:

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

我想把它转换成一个 Array,但是由于第一个逗号的原因,这显然是无效的。如何从字符串中删除第一个逗号并使其成为有效的 Array?

我想以这样的东西结束:

myArray  = ['first string','more','even more']
311905 次浏览

删除要使用的第一个字符:

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

但是我不确定这是否是您想要的结果,因为您仍然需要分割它来创建一个数组。比如说:

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

请记住,’字符将是这里拆分的每个字符串的一部分。

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


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

这是假设您开始使用的字符串实际上是一个 String,如您所说,而不是一个字符串数组。

在这种情况下(总是有一个单一的字符在开始你想删除) ,你会需要:

str.substring(1)

然而,如果你想要检测逗号是否在那里,并删除它如果它是,那么类似于:

if (str[0] == ',') {
str = str.substring(1);
}

要将字符串转换为数组,我通常使用 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'"]

首先用逗号分开,可能被单引号包围,
然后过滤掉不真实的(空的)部分。

您可以使用 regex 直接替换 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});;

你可以用你想替换的字符来做一些其他的事情,比如给 help 函数添加参数。

一句俏皮话

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

我马上回来。

s=s.substring(1);

我喜欢把事情简单化。

这将删除后面的逗号和空格

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

删除开头字符或尾字符:

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, '');
}