2

JavaScript では、"/john/smith" という形式の文字列があります。「名」:「ジョン」、「姓」:「スミス」という配列を取得したいと思います。

js には、区切り文字に基づいてこの文字列を解析する簡単な機能がありますか? 私は何も見たことがなく、Googleは正規表現を実行する以外は何も返しませんでした。

4

6 に答える 6

3
var str="/john/smith"
var ar=str.split("/");

ar[1]にはfirstnameが含まれるようになりました

& ar[2]にはが含まれます

于 2013-06-20T04:21:48.430 に答える
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"}
于 2013-06-20T04:26:01.010 に答える
2

これには .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] には "" が含まれています。最初の「/」文字の前に空の文字列があるため、最初の結果は空です。

于 2013-06-20T04:21:55.430 に答える
0

特定の例でこれを行ういくつかの方法は、他のほとんどの回答が/最初に a を残すことを考えると、これらは正しい結果を出力します。

var result = str.match(/[^/]+/g);

または:

var result = str.split('/').slice(1);
于 2013-06-20T04:26:31.170 に答える
0

split()メソッドはトリックを行います

var str="/john/smith"
var arr=str.split("/");

arr[1] は forstname を与え、arr[2] は secondname を与えます

于 2013-06-20T04:23:18.517 に答える
0

単純な Javascript分割メソッドが機能するはずです。

var myOriginalString = '/John/Smith';
var afterSplitArray = myOriginalString.split('/');
var firstName = afterSplitArray[1]; // John
var lastName = afterSplitArray[2]; //Smith

唯一の問題は、元の文字列が区切り文字で始まる場合、上記の例のように index = 1 から変数へのアクセスを開始する必要があることです。

于 2013-06-20T04:31:50.933 に答える