0

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

托管在我的个人网站 - 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”范围内获得所有文本_(主题、讲师、日期)(11-13),我就可以将其格式化。我只想从文本字段中提取数据并将其放入单独页面上的 div 标签中。

感谢您的时间,提前!

4

1 回答 1

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");
    }
}
于 2013-02-23T00:02:17.913 回答