Javascript 使用JQUERY查找字符串并将其替换为正则表达式
我有一个通过AJAX导入的模板文件。此文件包含我要用输入字段替换的标记。标记中的数字有助于命名和标识输入字段。标签如下所示:Javascript 使用JQUERY查找字符串并将其替换为正则表达式,javascript,jquery,regex,Javascript,Jquery,Regex,我有一个通过AJAX导入的模板文件。此文件包含我要用输入字段替换的标记。标记中的数字有助于命名和标识输入字段。标签如下所示: {ele1} 这就是我发现的构建正则表达式的方法 <script language=javascript> var txt='{ELE1}'; var re1='(\\{)'; // Any Single Character 1 var re2='(ELE)'; // Word 1 var re3='(\\d+)'; // Intege
{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>
假设txt保存从模板获取的数据。您可以执行以下操作:
newcontent = txt.replace(
/\{(ele\d+)\}/gi,
'<input type="text" name="$1" id="$1" />'
);
编辑
抱歉,匹配的组被引用为${n},而不是\{n}。为什么要从四个不同的变量构建正则表达式,而不是只编写一个正则表达式?为什么每个部分都有大括号?你能放一个样本数据和你想要的输出吗?4个变量…这正是一些正则表达式生成器所做的。请看我的EditsQuery与此无关。这是一个DOM操作库,不是正则表达式引擎。@swg1cor14哦,它将是$1而不是\1。很抱歉。
<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>
<input type="text" name="ele7" id="ele7" />
newcontent = txt.replace(
/\{(ele\d+)\}/gi,
'<input type="text" name="$1" id="$1" />'
);