如何在字符串中全局替换|(竖杠)符号?当我试图用"so|me|str|ing".replace(/|/g, '-')
替换它时,我得到的结果是"-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-"
|
表示“或”,因此您需要像这样转义它:\|
let output_delimiter ='|';
let str= 'Foo|bar| Test';
str.replace(new RegExp('[' + output_delimiter + ']', 'g'), '-')
//should be 'Foo-bar- Test'
"so|me|str|ing".replace("|", "-"); // "so-me|str|ing" → WRONG
"so|me|str|ing".split("|").join("-"); // "so-me-str-ing" → RIGHT
var str = "so|me|str|ing";
while(str.indexOf("|") >= 0) {
str = str.replace("|", "-"); // "so-me|str|ing" → RIGHT
}
.replaceAll()
使用现代方法 String.prototype.replaceAll() -- 请注意,此方法目前仅由少数浏览器支持:
"so|me|str|ing".replaceAll("|", "-"); // "so-me-str-ing" → RIGHT