次のような文字列があります。
",'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);
}
var s = ",'first string','more','even more'";
var array = s.split(',').slice(1);
それはあなたが始めた文字列が実際にはあなたが言ったような文字列であり、文字列の配列ではないと仮定しています。
ワンライナー
str = str.replace(/^,/, '');
戻ってきます。
文字列が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'"]
最初の引用符で囲まれたカンマで最初の分割
それから真でない(空の)部分を取り除きます。
文字列を配列に変換するために私は通常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の関数を正規表現で直接置き換えるか、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などを置き換えたいものでhelp関数にパラメータを追加するためにできることや他のことをすることができます。
s=s.substring(1);
私はものを単純にしておくのが好きです。
これは末尾のコンマとスペースを削除します
var str = ",'first string','more','even more'";
var trim = str.replace(/(^\s*,)|(,\s*$)/g, '');