0

Javascriptで文字列操作を取得するのに助けが必要です。私はサンプル文字列を持っています

var str = 'Supplier^supp^left^string*Spend (USD MM)^spend^right^number^5';

この文字列は基本的に、SupplierとSpendの2つの列のポートレットの構成です。この文字列から列名を取得する必要があります。各スターは、新しい列構成に従います。この場合、2列のみの構成があるため、文字列には1つの星しか存在しません。おそらく、2つの列がある場合、文字列は次のようになります。

var str = 'Supplier (Name)^Supplier^left^string*Spend (USD MM)^Spend^right^number^5*Location (Area)^Loc^right^string^*Category ^Categ^right^string';

したがって、上記の文字列から、2番目のキャレットの後に目的の文字列を取得するロジックを記述しました。'Supplier'(表示名である'Supplier(Name)ではなく1番目の列のデータ名)、(スター)2番目のキャレット「Spend」の後。同様に「Loc」(3列目)と「Categ」(4列目)。誰かが私がこれを達成するのを手伝ってくれる?これが私が書いたものです

    function getColNamesfromConfig(str) {
        var i = str.indexOf('^');
        var tmpCatStr = str.slice(i + 1);
        var catField = tmpCatStr.slice(0, tmpCatStr.indexOf('^'));

        var j = tmpCatStr.indexOf('*');
        var tmpStr = tmpCatStr.slice((j + 1));
        var k = tmpStr.slice(tmpStr.indexOf('^') + 1);
        var valField = k.slice(0, k.indexOf('^'));
        return { categoryField: catField, valueField: valField };
    }
4

2 に答える 2

3

使用できますsplit()

str.split('*')[0].split('^')[1]

上記のコードはあなたに与えるでしょう

Supplier

次のリンクを確認してください

于 2012-07-25T08:13:30.260 に答える
0

または、正規表現を使用します。

   function headers(s) {
      var re = /([^^]+)(?:[^*]+[*]?)?/g, names=[];
      while (match = re.exec(s)) {
        names.push(match[1]);
      }
      return names;
   }

出力 ["Supplier","Spend (USD MM)","Location (Area)","Category "]["Supplier (Name)","Spend (USD MM)","Location (Area)","Category "] 2つの例

これを実際に見てください(JSFiddle)。

于 2012-07-25T08:32:42.110 に答える