JavaScript では、"/john/smith" という形式の文字列があります。「名」:「ジョン」、「姓」:「スミス」という配列を取得したいと思います。
js には、区切り文字に基づいてこの文字列を解析する簡単な機能がありますか? 私は何も見たことがなく、Googleは正規表現を実行する以外は何も返しませんでした。
JavaScript では、"/john/smith" という形式の文字列があります。「名」:「ジョン」、「姓」:「スミス」という配列を取得したいと思います。
js には、区切り文字に基づいてこの文字列を解析する簡単な機能がありますか? 私は何も見たことがなく、Googleは正規表現を実行する以外は何も返しませんでした。
var str="/john/smith"
var ar=str.split("/");
ar[1]にはfirstnameが含まれるようになりました
& ar[2]には姓が含まれます
このようなもの?:
var str = "/john/smith";
//empty is here because if you split by / you'll get ["", "john", "smith"]
var getObject = function(empty, first, last) {
//You could traverse arguments, witch will have every match in an "array"
return {
first_name: first,
last_name: last
};
}
firstAndLastName = getObject.apply(null, str.split('/')); //Object {first_name: "john", last_name: "smith"}
これには .split() メソッドを使用できます。.split() のリファレンスについては、MDN を参照してください: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split
使い方はとても簡単です。
var namestring = "/John/Smith";
var pieces = namestring.split("/");
pieces[1] には「John」が含まれ、pieces[2] には「Smith」が含まれています。これらのインデックス配列は 0 と 1 ではなく、1 と 2 であることに注意してください。pieces[0] には "" が含まれています。最初の「/」文字の前に空の文字列があるため、最初の結果は空です。
特定の例でこれを行ういくつかの方法は、他のほとんどの回答が/
最初に a を残すことを考えると、これらは正しい結果を出力します。
var result = str.match(/[^/]+/g);
または:
var result = str.split('/').slice(1);
split()
メソッドはトリックを行います
var str="/john/smith"
var arr=str.split("/");
arr[1] は forstname を与え、arr[2] は secondname を与えます
単純な Javascript分割メソッドが機能するはずです。
var myOriginalString = '/John/Smith';
var afterSplitArray = myOriginalString.split('/');
var firstName = afterSplitArray[1]; // John
var lastName = afterSplitArray[2]; //Smith
唯一の問題は、元の文字列が区切り文字で始まる場合、上記の例のように index = 1 から変数へのアクセスを開始する必要があることです。