我有一个通过AJAX导入的模板文件。此文件包含我要用输入字段替换的标记。标签中的数字有助于输入字段的名称和ID。标签是这样的:
{ele1}
这是我发现构建正则表达式
<script language=javascript>
var txt='{ELE1}';
var re1='(\\{)'; // Any Single Character 1
var re2='(ELE)'; // Word 1
var re3='(\\d+)'; // Integer Number 1
var re4='(\\})'; // Any Single Character 2
var p = new RegExp(re1+re2+re3+re4,["i"]);
var m = p.exec(txt);
if (m != null)
{
var c1=m[1];
var word1=m[2];
var int1=m[3];
var c2=m[4];
document.write("("+c1.replace(/</,"<")+")"+"("+word1.replace(/</,"<")+")"+"("+int1.replace(/</,"<")+")"+"("+c2.replace(/</,"<")+")"+"\n");
}
</script>
那么如何使用JQUERY来查找和替换
<input type="text" name="ele1" id="ele1" />
我使用括号的原因是因为PHP中的模板引擎。我有一个脚本,一旦提交输入字段,并用这些输入替换括号。所以我使用相同的模板文件。
这是模板文件中的剪辑:
<p>
1. {ele7} your gift.
</p>
<p>
<b>13</b> You made all the delicate, inner parts of my body and knit me together in my mother's womb. <b>14</b> Thank you for making me so wonderfully complex! <strong>Psalm 139:13-14 NLT</strong>
</p>
基本上{ele7}
会更改为
<input type="text" name="ele7" id="ele7" />
答案 0 :(得分:2)
假设txt
包含您从模板中获取的数据。您可以执行以下操作:
newcontent = txt.replace(
/\{(ele\d+)\}/gi,
'<input type="text" name="$1" id="$1" />'
);
很抱歉,匹配的组被引用为${n}
,而不是\{n}
。