我有一个类似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'

为什么第一和第二个案例相同,当我使用$$$
代替$$
时,我得到了预期的结果?
答案 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)
此外,您可以使用split
和join
来提高效果,$
对这些功能并不特别。
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' );
将函数指定为参数
您可以将函数指定为第二个参数。在这种情况下,将在执行匹配后调用该函数。函数的结果(返回值)将用作替换字符串。 (注意:上述特殊替换模式在这种情况下不适用。。请注意,如果第一个参数中的正则表达式为全球。
答案 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, "$$$$")
}