Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JQUERY查找字符串并将其替换为正则表达式_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 使用JQUERY查找字符串并将其替换为正则表达式

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

我有一个通过AJAX导入的模板文件。此文件包含我要用输入字段替换的标记。标记中的数字有助于命名和标识输入字段。标签如下所示:

{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(/</,"&lt;")+")"+"("+word1.replace(/</,"&lt;")+")"+"("+int1.replace(/</,"&lt;")+")"+"("+c2.replace(/</,"&lt;")+")"+"\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" />'
);