打字稿仅替换管道前的点,而不替换管道后的点

时间:2019-06-25 20:28:55

标签: typescript

我有一个包含点的字符串,我想用空格替换它们,例如:

i.love.dogs。| .because.its.nice

不幸的是,它仅替换管道之前而不是之后的点。这是我的代码:

      let id = blogId.replace(".", " ")

2 个答案:

答案 0 :(得分:4)

您需要使用设置了g(全局)标志的正则表达式,以便使用第二个参数替换其所有实例。

所以您需要这样做:

const blogId = "i.love.dogs.|.because.its.nice"
let id = blogId.replace(/\./g, " ")

// now id is "i love dogs | because its nice"

答案 1 :(得分:0)

请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace的文档。

  

replace()方法返回一个新字符串,该字符串具有部分或全部匹配的模式,并由替换项替换。模式可以是字符串或RegExp,而替换项可以是字符串或每个匹配项要调用的函数。 如果pattern是字符串,则只会替换第一个匹配项

您可以使用正则表达式模式获得所需的结果:

var result = blogId.replace(/\./g, " ")

或者您可以编写一个辅助方法:

//replace all dots in string str with a space
stripDots(str: string): string {
    let result = ""
    for (var c of str){
        if (c === ".")
            c = " ";
        result += c;
    }
    return result;
}