次の文字列があります。
",'first string','more','even more'"
これを配列に変換したいのですが、最初のコンマのため、明らかにこれは無効です。文字列から最初のカンマを削除して有効な配列にするにはどうすればよいですか?
私はこのようなもので終わりたいと思います:
myArray = ['first string','more','even more']
次の文字列があります。
",'first string','more','even more'"
これを配列に変換したいのですが、最初のコンマのため、明らかにこれは無効です。文字列から最初のカンマを削除して有効な配列にするにはどうすればよいですか?
私はこのようなもので終わりたいと思います:
myArray = ['first string','more','even more']
回答:
使用する最初の文字を削除するには:
var myOriginalString = ",'first string','more','even more'";
var myString = myOriginalString.substring(1);
これがあなたが探している結果になるかどうかはわかりませんが、それを分割して配列を作成する必要があるためです。多分次のようなもの:
var myString = myOriginalString.substring(1);
var myArray = myString.split(',');
ここで、 '文字は分割内の各文字列の一部になります。
この特定の場合(最初に削除する文字が常に1つある)が必要です。
str.substring(1)
ただし、コンマが存在するかどうかを検出し、存在する場合は削除できるようにするには、次のようにします。
if (str[0] == ',') {
str = str.substring(1);
}
if (str[0] === ',')
。少しだけパフォーマンスを上げるためです。
文字列を配列に変換するには、通常使用します 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()
にも仕事をします。
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などを置き換えるものを使ってヘルプ関数にパラメータを追加するなどのことができます。
myString.slice(1);