用字符串替换管道

Avi*_*kar 3 javascript regex

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

var mystring = "this|is|a|test"
console.log(mystring.replace(/|/g , ","));
Run Code Online (Sandbox Code Playgroud)

这给了我这个结果:,t,h,i,s,|,i,s,|,a,|,t,e,s,t,这不是我想要的.为什么这不起作用?

当我尝试以下内容时,它适用于逗号.

var mystring = "this,is,a,test"
console.log(mystring.replace(/,/g , ":"));
Run Code Online (Sandbox Code Playgroud)

这给了我---->这个:是:a:测试

为什么它不能用于OR,我该如何解决?

Ray*_*yon 10

逃避|角色.

var mystring = "this|is|a|test"
console.log(mystring.replace(/\|/g, ","));
Run Code Online (Sandbox Code Playgroud)

  • 不敢相信其他三个人打我一拳 (3认同)

Wil*_*sem 5

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

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

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

正则表达式101演示

方括号通常用于写入字符序列,但(积极的)副作用是大多数特殊字符在方括号环境中按字面解释,如正则表达式旁边的 regex101 解释所指定:

  • [|]匹配下面列表中存在的单个字符
    • |字面字符|