我在我的JavaScript代码中发现了一个错误,我已经将其隔离到一个字符串替换中,这种错误的行为方式与我没想到的一样.以下是代码示例:
var text = "as";
text = text.replace(text,"$\'");
console.log(text);
Run Code Online (Sandbox Code Playgroud)
这会将空字符串输出到控制台.我原以为它要打印$'到控制台.有谁能解释一下?
如何在JavaScript中执行正确的字符串搜索和替换,绝对不涉及REGEX?
我知道文档说如果第一个参数String.prototype.replace()是字符串而不是正则表达式,那么它将进行文字替换.实践证明并非完全正确:
"I am a string".replace('am', 'are')
--> "I are a string"
Run Code Online (Sandbox Code Playgroud)
好
"I am a string".replace('am', 'ar$e')
--> "I ar$e a string"
Run Code Online (Sandbox Code Playgroud)
还行
"I am a string".replace('am', 'ar$$e')
--> "I ar$e a string"
Run Code Online (Sandbox Code Playgroud)
不好!
第二个美元符号在哪里?它是否正在寻找类似于$1替换REGEX的匹配...从未使用过的东西?
我很困惑和沮丧,任何想法?
我试图用"$$ Ashok"替换下面例子中的"this".我没有得到预期的输出.
var adHtmltext ="this is ashok"
adHtmltext = adHtmltext.replace("this", "$$Ashok");
alert(adHtmltext );
Run Code Online (Sandbox Code Playgroud)
为什么它会在输出中显示一个$?怎么解决这个问题?
这是jsfiddle http://jsfiddle.net/RxDa5/
请帮忙.