繁体   English   中英

在javascript和美元符号中替换所有

[英]replaceAll in javascript and dollar sign

我有一个3美元符号的字符串,例如$$$Test123 我想在div中显示这个字符串。 问题是,当我使用replace我得到$$Test123 - 2美元符号而不是3。

例:

var sHtml="<_content_>";
var s="$$$Test";
sHtml= sHtml.replace("<_content_>", s);

现在sHtml的结果是$$Test ;

任何想法如何解决?

javascript没有默认替换所有功能。 你可以这样写自己的



function replaceAll(txt, replace, with_this) {
  return txt.replace(new RegExp(replace, 'g'),with_this);

}

当包含在用于调用replace()的第二个参数的字符串中时, $具有特殊含义。 通常,您可以使用它来引用原始字符串中的匹配表达式。 例如:

"foo foooo".replace(/fo+/g, "$&bar");
//-> "foobar foooobar"

在上面的例子中, $&引用整个匹配,第一个单词是foo ,第二个单词是foooo

你的问题源于$的特殊含义。 为了在匹配中使用文字$ ,你必须将两个链在一起,以便第一个转义第二个。 要有3个文字$符号,你必须将6链在一起,如下所示:

var sHtml="<_content_>";
var s="$$$$$$Test";  
sHtml= sHtml.replace("<_content_>", s);
//-> "$$$Test"

行情是你的朋友

var sHtml="<_content_>"  
var s="$$$Test";  
sHtml= sHtml.replace("<_content_>", s);

试试这个replaceAll函数:

http://www.dumpsite.com/replaceAll.php

它使用javascript替换函数通过正则表达式执行替换全部速度,同时消除了在搜索或替换字符串中无意中出现正则表达式特殊字符时发生的副作用。

使用此功能,您不必担心转义特殊字符。 在执行replaceAll之前,所有特殊字符都会预先转义。

此功能将产生您期望的输出。

尝试一下并提供您的反馈。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM