javascript 如何全局替换管道符号“|” 在字符串中
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/29593532/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to globally replace pipe symbol "|" in string
提问by user2837849
How can I globally replace the |
(pipe) symbol in a string? When I try to replace it with "so|me|str|ing".replace(/|/g, '-')
, I get "-s-o-|-m-e-|-s-t-r-|-i-n-g-"
如何全局替换|
字符串中的(管道)符号?当我尝试用 替换它时"so|me|str|ing".replace(/|/g, '-')
,我得到"-s-o-|-m-e-|-s-t-r-|-i-n-g-"
回答by joews
|
has special meaning(A|B
means "match A or B"), so you need to escape it:
|
具有特殊含义(A|B
表示“匹配 A 或 B”),因此您需要对其进行转义:
"so|me|str|ing".replace(/\|/g, '-');
回答by squill25
|
means OR
, so you have to escape it like this: \|
|
意味着OR
,所以你必须像这样逃避它:\|
回答by ChadF
Try using "so|me|str|ing".replace(/[|]/g, '-')
尝试使用 "so|me|str|ing".replace(/[|]/g, '-')
This is a great resource for working with RegEx: https://www.regex101.com/
这是使用 RegEx 的绝佳资源:https: //www.regex101.com/
回答by Devdatta Tengshe
In my case, the pipe was coming as an variable, so I couldn't use any of these solutions. Instead, You can use:
就我而言,管道是作为变量出现的,因此我无法使用任何这些解决方案。相反,您可以使用:
let output_delimiter ='|';
let str= 'Foo|bar| Test';
str.replace(new RegExp('[' + output_delimiter + ']', 'g'), '-')
//should be 'Foo-bar- Test'