JavaScript replace()方法美元符号

时间:2016-08-10 06:44:39

标签: javascript string

我有一个类似aman/gupta的字符串,我想将其替换为aman$$gupta,为此我使用JavaScript replace方法,如下所示:



let a = "aman/gupta"
a = a.replace("/", "$")
console.log(a) // 'aman$gupta'

a = "aman/gupta"
a = a.replace("/", "$$")
console.log(a) // 'aman$gupta'

a = "aman/gupta"
a = a.replace("/", "$$$")
console.log(a) // 'aman$$gupta'




为什么第一和第二个案例相同,当我使用$$$代替$$时,我得到了预期的结果?

6 个答案:

答案 0 :(得分:5)

这是因为$$插入"$"

所以,你需要使用:

a = "aman/gupta";
a = a.replace("/", "$$$$"); // "aman$$gupta"

请参阅以下special patterns

Pattern   Inserts
$$        Inserts a "$".
$&        Inserts the matched substring.
$`        Inserts the portion of the string that precedes the matched substring.
$'        Inserts the portion of the string that follows the matched substring.
$n        Where n is a non-negative integer lesser than 100, inserts the nth
            parenthesized submatch string, provided the first argument was a
            RegExp object.

答案 1 :(得分:5)

此外,您可以使用splitjoin来提高效果,$对这些功能并不特别。

var a = "aman/gupta"
a = a.split('/').join('$$')
alert(a); // "aman$$gupta"

答案 2 :(得分:1)

为避免转义特殊字符,您可以使用匿名函数代替

function my_scripts_and_css() {

  wp_enqueue_style( 'my-plugin-css', plugins_url( '/css/style.css', __FILE__ ) );
  wp_enqueue_script( 'my-plugin-js', plugins_url( '/js/script.js',__FILE__ ), array('jquery'), '20200110' );       

}
add_action( 'wp_enqueue_scripts', 'my_scripts_and_css' );

String.prototype.replace()文档

将函数指定为参数

您可以将函数指定为第二个参数。在这种情况下,将在执行匹配后调用该函数。函数的结果(返回值)将用作替换字符串。 (注意:上述特殊替换模式在这种情况下不适用。。请注意,如果第一个参数中的正则表达式为全球。

答案 3 :(得分:0)

replace方法提供以美元符号开头的替换模式。其中一个是$$,它插入一个$。替换字符串中的单个美元符号将导致文字符号。

因此,如果您想要干净的文字美元符号,请相应地使用$$替换模式:

console.log('aman/gupta'.replace('/','$$')); // aman$gupta
console.log('aman/gupta'.replace('/','$$$$')); // aman$$gupta
console.log('aman/gupta'.replace('/','$$$$$$')); // aman$$$gupta

答案 4 :(得分:0)

使用下面的代码为我工作。

TcpClient tcpClient = new TcpClient(LocalHost, Port);

答案 5 :(得分:0)

在正则表达式中用组替换,如果替换为变量,则需要将美元符号转义。否则会有bug。

function escapeDollarSign(str) {
return str.replace(/\$/g, "$$$$")
}