用“$$$”替换文本,在Javascript中给出截断的结果
replacing a text with "$$$", gives truncated result in Javascript
var text="$$$ $$ $";
var dummy="hello world";
dummy.replace("world", text);
预期输出:
hello $$$ $$ $
实际输出:
hello $$ $ $
我不明白为什么会这样。 请帮忙。 不过,其他符号似乎不会发生这种情况。
谢谢
这是因为$
在正则表达式中具有特殊含义,replace
使用正则表达式。
有关更多详细信息,请参阅此问题:链接
简短的回答是">因为这就是 String.replace 的工作方式"。
Mozilla Development Network 上的文档在这里很有帮助:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter
替换字符串可以包括以下特殊的替换模式:
-
$$
插入"$"。 -
$&
插入匹配的子字符串。
等等..(还有更多的替换规则,但我不会引用整个MDN页面(
因此,如果我们将您的样品更改为:
var text="$$ ($&) $";
var dummy="hello world";
dummy.replace("world", text);
我们得到的结果是:
"hello $ (world) $"
简而言之,$&
(以及其他序列,如$1
和$'
(,意味着特殊的东西,而你逃避普通$
的方式是在它前面加上另一个$
。
相关文章:
- 用“$$$”替换文本,在Javascript中给出截断的结果
- 如何在 JavaScript 中将数组中的 [ ] 替换为 var 结果
- 试图通过克隆节点来替换 HTML,但得到奇怪的结果
- 在使用Protractor进行测试时,我可以用json文件替换结果,而不是调用实际的REST端点
- 如何使jQuery插件自动完成像谷歌替换结果
- 如何使用regex在以前的搜索结果中进行搜索和替换
- 正则表达式 - 替换方法从字符串中删除运算符产生不希望的结果
- 将通过 AJAX 上传到 DIV 的变量传递到同一 DIV 中,并将内容替换为结果
- JS中的多个字符替换 - 如何在同一函数中停止对先前结果的替换
- 正则表达式第一个结果($ 1)替换为变量的属性
- 正则表达式替换的意外结果
- 在 ajax提交后将表单替换为结果
- 如何使用AJAX替换json_encode返回结果的内部html
- 如果计算结果小于225,则将值替换为225
- Javascript替换regex剪切结果
- 对ng重复的结果使用replace将下划线替换为空格
- 将选择框选项替换为JSON结果
- javascript中的文本替换没有得到预期的结果
- 根据正则表达式搜索结果替换单词
- JavaScript用函数结果替换文本中的每个匹配