使用javascript / regex过滤动态生成的<input />标记

时间:2013-02-21 23:41:59

标签: javascript regex dynamic-content

我目前正在尝试为我的培训部门创建一个动态可打印文档生成器。我希望整个项目保留在Javascript /浏览器端脚本中,因为我试图获得Javascript专有的知识。用户界面如下链接(在我有10个代表之前无法发布图片):

Hosted on my personal website - cgiv.webs.com/Test Platform/Training Plan.png

我遇到的问题是正则表达式。我对Javascript很新,但对Jscript中的正则表达式非常新。我目前正在使用以下函数来生成和识别每次执行的三个输入文本:

/*Variable Declarations*/

var i1 = 0;
var i2 = 0;

/* ------------------- */


function generateInput()
{

if (i1<15)
{
    i1++;
    var appendSpan = document.getElementById('appendSpan');

    var appendStr = "<div class='row'><input id='text_topic" + i2.toString() + i1.toString() + "' class='text_topic' type='text'/>|<input id='text_instructor" + i2.toString() +  i1.toString() + "' class='text_instructor' type='text'/>|<input id='text_date" + i2.toString() +  i1.toString() + "' class='text_date' type='text'/></div>";

    appendSpan.innerHTML += appendStr;
}
else
{
    alert("Action Cancelled.  Maximum fields reached.");
}

}

i2变量表示输入字段所属的标题号,其中i1变量表示每个单元格所属的行。我想在以下函数中放置一个正则表达式标识符脚本来从每个单元格中提取值,并将它们附加到“newPage”变量中各自的目标跨度下面:

function createPage() 
{
var newPage = "<html><head><title></title>";
newPage += "<link rel='stylesheet' lang='text/css' href='output.css'>";
newPage += "</head><body>";
newPage += "<div class='head'>" + promptVal[0] + "</div><br/>";
newPage += "<span id='hcontent1'></div></span>";

var inputs = document.getElementsByTagName("input");

/*  Uhhh.. Yeah.  This is where I'm lost */

newPage += "</span>";
newPage += "</body></html>";

var j = window.open('')
j.document.write(newPage);
j.document.close();
}  

一旦我可以在“hcontent1”范围内获得text_(主题,讲师,日期)(11-13),我可以将其格式化。我只想从文本字段中提取数据并将其放在单独页面上的div标签中。

感谢您的时间,提前!

1 个答案:

答案 0 :(得分:0)

我明白了!经过三天的搜索,这很有效:

var regex1 = /1/g;

for (var i=0; inputs[i]; i++)
{
    if (inputs[i].id.search(regex1) == 10)
    {
        alert("It worked");
    }

    else if (inputs[i].id.search(regex1) == 15)
    {
        alert("It worked again");
    }

    else if (inputs[i].id.search(regex1) == 9)
    {
        alert("You did it, man");
    }

    else
    {
        alert("Skip this one");
    }
}