Удалить начальную запятую из строки

У меня есть следующая строка:

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

Я хочу преобразовать это в массив, но, очевидно, это не верно из-за первой запятой. Как я могу удалить первую запятую из моей строки и сделать ее допустимым массивом?

Я хотел бы закончить что-то вроде этого:

myArray  = ['first string','more','even more']

Ответ 1

Чтобы удалить первый символ, вы должны использовать:

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

Я не уверен, что это будет результат, который вы ищете, потому что вам все равно придется разделить его, чтобы создать массив с ним. Может быть что-то вроде:

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

Имейте в виду, что символ 'будет частью каждой строки в разделении здесь.

Ответ 2

В этом конкретном случае (в начале всегда есть один символ, который вы хотите удалить) вы захотите:

str.substring(1)

Однако, если вы хотите определить наличие запятой и удалить ее, если это так, то что-то вроде:

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

Ответ 3

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

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

Предполагая, что строка, с которой вы начинаете, на самом деле является строкой, как вы сказали, а не массивом строк.

Ответ 4

Однострочный

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

Я вернусь.

Ответ 5

var s = ",'first string','more','even more'";  
s.split(/'?,'?/).filter(function(v) { return v; });

Результаты в:

["first string", "more", "even more'"]

Первый раскол с запятыми, возможно, окружен одинарными кавычками,
затем отфильтруйте неиспользуемые (пустые) части.

Ответ 6

Чтобы превратить строку в массив, я обычно использую 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

Предполагая, что строка называется myStr:

// Strip start and end quotation mark and possible initial comma
myStr=myStr.replace(/^,?'/,'').replace(/'$/,'');

// Split stripping quotations
myArray=myStr.split("','");

Обратите внимание, что если строка может отсутствовать в списке, даже если ее кавычки отсутствуют, и вы хотите, чтобы в соответствующем месте в массиве было пустое место, вам нужно написать расщепление вручную для надежного решения.

Ответ 8

Вы можете напрямую использовать функцию 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});;

Вы можете сделать и другие вещи, чтобы добавить параметр к функции справки с тем, что вы хотите заменить char и т.д.

Ответ 9

s=s.substring(1);

Мне нравится держать вещи просто.

Ответ 10

это уберет запятые и пробелы

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