0

テーブルの並べ替えスクリプトの一部として次のコードがあります。現在のように、「FIRST LAST」形式の名前を「LAST、FIRST」に「再フォーマット」することにより、LAST 名でソートできます。

var FullName = fdTableSort.sortText;
function FullNamePrepareData(td, innerText) {
  var a = td.getElementsByTagName('A')[0].innerHTML;
  var s = innerText.split(' ');
  var r = '';
  for (var i = s.length; i > 0; i--) {
    r += s[i - 1] + ', ';
  }
  return r;
}

現在、LAST スペースの後の名前でソートされているようです (例: Jean-Claude Van Damme は「D」でソートされます)。

このスクリプトを FIRST スペースでソートするように変更するにはどうすればよいですか (そのため、Van Damme は V に表示されます)。

前もって感謝します!

4

4 に答える 4

2

配列メソッドを使用すると、その機能を少し短くすることができます。

function FullNamePrepareData(td, innerText) {
    return innerText.split(' ').reverse().join(', ');
}

他のすべての後ろに名だけを置くために、あなたは使うかもしれません

function FullNamePrepareData(td, innerText) {
    var names = innerText.split(' '),
        first = names.shift();
    return names.join(' ')+', '+first;
}

または正規表現置換を使用します:

function FullNamePrepareData(td, innerText) {
    return innerText.replace(/^(\S+)\s+([\S\s]+)/, "$2, $1");
}
于 2012-08-20T21:32:27.183 に答える
0

私はあなたがこの後だと思います:

    var words = innerText.split(' '),
        firstName = words.shift(),
        lastName = words.join(' ');
    return lastName + ', ' + firstName;        

「ヴァン・ダム、ジャン=クロード」

于 2012-08-20T21:38:00.407 に答える