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):这是一个示例输入。它基本上是从网络 CRM 工具复制的文本。请注意,这个示例输入是我随机输入的。

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 看起来太相似了,我可以说我正在犯错误。

我一步一步来。这是我现在使用的逻辑。

  • 人员将文本粘贴到文本框中并按下生成按钮
  • 程序获取文本框的内容并将其解析为一个大数组,仅删除空格
  • 然后程序在文本中搜索模式并开始将值传递给变量

我试图让程序简单地识别模式“摘要部分折叠名称”,因为这四个词应该始终按此顺序排列。一旦识别出这一点,它将把接下来的两个数组值传递给名字和姓氏变量。这是一些代码:

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

accountLinesTempArrayof String,您可以使用该Array.sort函数按预期对数组进行排序,然后Array.join在必要时使用它来获取完整的字符串。

有关更多信息,请参阅MDN 上的https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/sort

于 2013-01-12T16:23:06.570 回答