2

アカウントに関するフォーマットされた情報でいっぱいのテキストボックスを取得して、なんとかして並べ替える必要があります。情報を2次元配列に解析することが理想的であるか(これを可能な限り効率的にしようとしている)、またはフィールドに情報を保持するアカウントオブジェクトを作成する必要があるかどうかを知りたいです。

このプログラムは、コピー/貼り付けを行わずに印刷できるようにデータをフォーマットすることを目的としています。

これまでのところ...

function generateOutputfvoc()
{
    var accountLines = document.getElementById('accountLines').value;
    var accountLinesTemp = accountLines.split(/[\s]/);

    for(var i = 0; i < accountLinesTemp.length; i++)
    {
        if(accountLinesTemp[i].match(/

編集(1-18-13):入力例を次に示します。これは基本的に、WebCRMツールからコピーされたテキストです。この入力例は、私がランダムに入力したものであることに注意してください。

P8B000001234567     stackoverflow   Thing   12522225555     444         Active 2005-02-26   CO1000123456     
P8B000001234568     stackoverflow   Another Thing       444         Active  2005-02-26  CO1000123456     
P8B000001234569     stackoverflow   Another Thing       556         Active  2005-02-26  CO1000123456      

私のプログラムでテキストを取得し、次のようにテキストを出力したいと思います。

P8B000001234567 stackoverflow Thing         12522225555 444 Active 2005-02-26 CO1000123456
P8B000001234568 stackoverflow Another Thing             444 Active 2005-02-26 CO1000123456
P8B000001234569 stackoverflow Another Thing             556 Active 2005-02-26 CO1000123456

また、jQuery変数を使用する必要があるかどうかを知りたいです。私はオンラインでよく調べていて、次のようなコードを使用する例を見つけたので、これを尋ねました。

$check=fcompcheck();
if($check)
{
    $output=document.frm1.type.value+" / ";
    $output=$output+"Something - "+document.frm1.disco.value+" / ";

$output変数に注意してください。ドル記号はjQuery変数を示していますよね?

あなたが私に提供することができるかもしれないどんな助けにも感謝します。

更新(1-19-13):ショットを撮りましたが、進行が遅いです。私はJavaのプログラミングに慣れていて、JavaScriptがあまりにも似ているように見えますが、エラーが発生していることがわかります。

私はそれを一歩ずつ進めています。これが私が今使っているロジックです。

  • 人はテキストボックスにテキストを貼り付け、生成ボタンを押します
  • プログラムはテキストボックスの内容を取得し、それを大きな配列に解析して、空白のみを削除します
  • 次に、プログラムはテキスト内のパターンを検索し、変数への値の受け渡しを開始します

これらの4つの単語は常にこの順序である必要があるため、プログラムに「SummarysectioncollapseName」というパターンを単純に識別させようとしています。これを識別すると、次の2つの配列値を名前変数と名前変数に渡します。コードの一部を次に示します。

var contactNameFirst, contactNameLast;

// Parse the input box into an array
var inputArr = document.getElementById('inputBox').value.split(/[\s]/);

for(var i = 0; i < inputArr.length; i++)
{
    if(inputArr[i] == "Summary" && inputArr[i - 1] == "section" && inputArr[i - 2] == "Collapse" && inputArr[i + 1] == "Name")
    {
        if(inputArr[i + 2] != "Details")
        {
            contactNameFirst = inputArr[i + 2];
        }
        else
        {
            contactNameFirst = "";
        }
        if(inputArr[i + 3] != "Details")
        {
            contactNameLast = inputArr[i + 3];
        }
        else
        {
            contactNameLast = "";
        }
    }
}

document.getElementById('contactNameOutput').innerHTML = contactNameFirst + " " + contactNameLast;

また、このために今すぐ新しい投稿を作成する必要がありますか、それともこれを編集し続ける必要がありますか?

4

1 に答える 1

0

あなたaccountLinesTempはのArrayです。関数をString使用して配列を期待どおりに並べ替え、必要に応じてを使用して完全な文字列を取得できます。Array.sortArray.join

詳細については、MDNのhttps://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/sortを参照してください。

于 2013-01-12T16:23:06.570 に答える