用字符串替换管道

时间:2016-06-23 19:12:03

标签: javascript regex

您好我需要删除所有出现的|从一个字符串。这就是我目前正在做的事情

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以及如何解决?

7 个答案:

答案 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;
&#13;
&#13;

答案 1 :(得分:3)

那是因为管道符(|)被解释为正则表达式。或者

但是,您可以在方括号之间使用管道字符,例如[|]

var mystring = "this|is|a|test"
console.log(mystring.replace(/[|]/g , ","));

regex101 demo

方括号通常用于编写一系列字符,但是(正)副作用是大多数特殊字符在字面括号环境中被解释,正如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