文字列から先頭のコンマを削除します


187

次の文字列があります。

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

これを配列に変換したいのですが、最初のコンマのため、明らかにこれは無効です。文字列から最初のカンマを削除して有効な配列にするにはどうすればよいですか?

私はこのようなもので終わりたいと思います:

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

43
単に使用するmyString.slice(1);
NBK

2
@NikhilBenKuruvillaこれは、コンマでなくてもすべての文字を削除します。最初の文字は、カンマのみの削除であるstackoverflow.com/a/39047793/696535
Pawel


パウェル、最初のセミコロンを文字列の先頭からどこに置いても削除する式は何でしょうか。これを使用する必要があります:function removeFirstSemicolon(str){str = str.trim(); str = str.replace(/ ^; /、 ''); strを返します。}それはもっと役立つかもしれません-キャラクターの前後に空白があることが多いので、実際にはトリムを2回使用する必要があります。
user1585204 2018年

回答:


312

使用する最初の文字を削除するには:

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

これがあなたが探している結果になるかどうかはわかりませんが、それを分割して配列を作成する必要があるためです。多分次のようなもの:

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

ここで、 '文字は分割内の各文字列の一部になります。


94

この特定の場合(最初に削除する文字が常に1つある)が必要です。

str.substring(1)

ただし、コンマが存在するかどうかを検出し、存在する場合は削除できるようにするには、次のようにします。

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

3
条件付きの場合も+1。コンマが存在しない可能性があると想定することは常に良い方法です。
JoeMoe1984 14年

1
これはより良い答えであり、受け入れられるべき答えです。
Christopher Smit

最初の文字を確認するために部分文字列を2回実行する必要はありませんif (str[0] === ',')。少しだけパフォーマンスを上げるためです。
Croot 2018


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

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

これは、あなたが言ったように、あなたが最初に開始する文字列が実際には文字列であり、文字列の配列ではないことを前提としています。


4

文字列がmyStrと呼ばれていると仮定します。

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

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

引用符がなくても文字列がリストにない可能性があり、配列内の対応する場所に空のスポットが必要な場合、堅牢なソリューションのために分割を手動で記述する必要があることに注意してください。


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

結果:

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

最初に単一引用符で囲まれた可能性のあるカンマで最初に分割し、
次に真実ではない(空の)部分をフィルターで除外します。


3

文字列を配列に変換するには、通常使用します split()

> var s = ",'first string','more','even more'"
> s.split("','")
[",'first string", "more", "even more'"]

これはほとんどあなたが望むものです。ここで、最初の2つと最後の文字を削除するだけです。

> 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()にも仕事をします。


1

javascriptの関数を直接regexで直接置き換えるか、php ltrim(left)およびrtrim(right)のようにヘルプ関数を定義できます。

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などを置き換えるものを使ってヘルプ関数にパラメータを追加するなどのことができます。


1
s=s.substring(1);

私は物事をシンプルに保つのが好きです。


0

これは、末尾のコンマとスペースを削除します

var str = ",'first string','more','even more'";
var trim = str.replace(/(^\s*,)|(,\s*$)/g, '');
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.