使用JQUERY使用REGEX查找和替换字符串

时间:2014-08-24 00:25:06

标签: javascript jquery regex

我有一个通过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(/</,"&lt;")+")"+"("+word1.replace(/</,"&lt;")+")"+"("+int1.replace(/</,"&lt;")+")"+"("+c2.replace(/</,"&lt;")+")"+"\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" />

1 个答案:

答案 0 :(得分:2)

假设txt包含您从模板中获取的数据。您可以执行以下操作:

newcontent = txt.replace(
    /\{(ele\d+)\}/gi,
    '<input type="text" name="$1" id="$1" />'
);

修改

很抱歉,匹配的组被引用为${n},而不是\{n}