字符串替换为多个dahses和空格

时间:2018-08-10 16:56:13

标签: javascript

我有许多这样格式化的字符串:

  

文森特·梵高-圣保罗医院的花园(秋季)-   12345

我正在尝试使用javascript将字符串更改为此:

  

Vincent-van-Gogh-Saint-Pauls-Hospital-Leaf-Fall-12345的花园

我本质上是想从标题中删除,'(),将“-”和空格更改为“-”。

我可以这样删除标点符号:

str.replace(/[,'()]/g,"");

所以我尝试过这种方法,以摆脱该空格破折号:

replace(/[ - ]/g,"");

但是最后我得到了这个

  

VincentvanGogh-圣保罗医院的花园(秋季)-12345

1 个答案:

答案 0 :(得分:7)

您正在使用字符类[ - ],其范围从空白到空白。您可以删除其中一个空格,然后重复一次或多次[ -]+,并用破折号代替:

let str = "Vincent van Gogh - The Garden of Saint Paul's Hospital (Leaf-Fall) - 12345";
console.log(str.replace(/[,'()]/g,"").replace(/[ -]+/g, '-'));