Удалить начальную запятую из строки
У меня есть следующая строка:
",'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, '');