Javascript替换-不使用html字符串

Javascript替换-不使用html字符串,javascript,jquery,replace,Javascript,Jquery,Replace,我试图用普通的旧html创建一种“模板”,然后可以由另一个javascript函数插入元素 所以,我有 var string = "<div id='<@nameInsert>' style='padding: 2px;'>here's some text and stuff</div>"; var string=“这里有一些文本和内容”; 在一个函数中,我试图用我正在使用的名称替换 string.replace("/<@nameInsert>

我试图用普通的旧html创建一种“模板”,然后可以由另一个javascript函数插入元素

所以,我有

var string = "<div id='<@nameInsert>' style='padding: 2px;'>here's some text and stuff</div>";
var string=“这里有一些文本和内容”;
在一个函数中,我试图用我正在使用的名称替换

string.replace("/<@nameInsert>", "525");
string.replace(“/”,“525”);

但是,它不起作用。某种转义的东西,错误的想法,或者什么?

如果要使用正则表达式,请不要使用引号

string.replace(/<@nameInsert>/, "525");
string.replace(//,“525”);
但是在你的例子中,你并不真的需要正则表达式。只需使用字符串:

string.replace("<@nameInsert>", "525");
string.replace("<@nameInsert>", "525");
string.replace(“,“525”);

对我来说,它可以这样工作

string=string.replace("<@nameInsert>", "525");
string=string.replace(“,“525”);
这里有一个例子

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  <script language="javascript">

  function test(){
    var string = "<div id='<@nameInsert>' style='padding: 2px;'>here's some text and stuff</div>";
    string=string.replace("<@nameInsert>", "525");
    alert(string);
  }

 </script>
</head>
<body>
  <input type="button" value="test" name="test" onclick="test()">  

</body>
</html>

功能测试(){
var string=“这里有一些文本和内容”;
string=string.replace(“,“525”);
警报(字符串);
}

它不起作用,因为您试图替换另一个字符串中不存在的字符串

我认为你混合了两种不同的替换方法。可以使用字符串替换:

string.replace("<@nameInsert>", "525");
string.replace("<@nameInsert>", "525");
string.replace(“,“525”);
您可以使用正则表达式替换:

string.replace(/<@nameInsert>/, "525");
string.replace(//,“525”);
带斜杠的部分是一个正则表达式文字,其结果如下:

string.replace(new RegExp("<@nameInsert>"), "525");
string.replace(新的RegExp(“”,“525”);
您可能更喜欢正则表达式,因为您可以指定全局标志,这将使它替换每一个事件,而不仅仅是第一个:

string.replace(/<@nameInsert>/g, "525");
string.replace(//g,“525”);

使用斜杠(/)或引号(“)并不重要,因为您只有一个字符串要替换..但请确保您理解替换方法..它不会替换现有字符串,而是返回其修改后的副本。。 所以你可以这样做:

string = string.replace(/<@nameInsert>/, "525");
string=string.replace(//,“525”);

确定它不起作用吗?谢谢Guffa。一个问题似乎是这对标记内的内容不起作用-例如查找和替换“text”-不起作用?@waxical:
replace
方法不关心字符串是否恰好包含HTML代码;标记内的文本处理方式不一样。请注意
replace
方法不会更改字符串,它会返回新字符串。您必须使用返回值:
string=string.replace(/text/g,'woohaa!');
。谢谢Guffa。我最终也找到了那个位。