您好我需要删除所有出现的|从一个字符串。这就是我目前正在做的事情
var mystring = "this|is|a|test"
console.log(mystring.replace(/|/g , ","));
这给了我这个结果:,t,h,i,s,|,i,s,|,a,|,t,e,s,t, 这不是我想要的。为什么这不起作用?
当我尝试以下操作时,它适用于逗号。
var mystring = "this,is,a,test"
console.log(mystring.replace(/,/g , ":"));
这给了我---->这样的:为:a:测试
为什么它不能用于OR以及如何解决?
答案 0 :(得分:10)
逃脱var mystring = "this|is|a|test"
console.log(mystring.replace(/\|/g, ","));
字符。
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 5 seconds"
ExpiresByType image/x-icon "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/javascript "access plus 216000 seconds"
ExpiresByType application/x-javascript "access plus 216000 seconds"
ExpiresByType text/html "access plus 600 seconds"
ExpiresByType application/xhtml+xml "access plus 600 seconds"
</ifModule>
&#13;
答案 1 :(得分:3)
那是因为管道符(|
)被解释为正则表达式。或者
但是,您可以在方括号之间使用管道字符,例如[|]
:
var mystring = "this|is|a|test"
console.log(mystring.replace(/[|]/g , ","));
方括号通常用于编写一系列字符,但是(正)副作用是大多数特殊字符在字面括号环境中被解释,正如regex101旁边的Standard Directory Layout解释所指定的那样。正则表达式:
[|]
匹配下面列表中的单个字符
|
文字字符|
答案 2 :(得分:1)
你只需要逃避|
,所以如果你需要这个,是,a,测试,你需要做的
console.log(mystring.replace(/\|/g , ","));
答案 3 :(得分:1)
|
是一个特殊字符,需要使用\
var mystring = "this|is|a|test";
console.log(mystring.replace(/\|/g , ","));
答案 4 :(得分:1)
必须转义管道字符
var mystring = "this|is|a|test"
console.log(mystring.replace(/\|/g, ","));
答案 5 :(得分:0)
管道符号是一个特殊的字符。你必须使用escape charcter。
console.log(mystring.replace(/\|/g , ","));
答案 6 :(得分:0)
你必须逃避特殊字符,如&#34; |&#34;用反斜杠。尝试用以下内容替换最后一行:
console.log(mystring.replace(/\|/g , ","));
我在Chrome中对上述内容进行了测试,它看起来像是在尝试做什么。
有关何时以及如何转义特殊字符的详细信息,请参阅以下有关特殊字符的内容:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp