首页 > 解决方案 > 字符串替换为多个破折号和空格

问题描述

我有许多格式如下的字符串:

文森特梵高 - 圣保罗医院花园(落叶) - 12345

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

Vincent-van-Gogh-The-Garden-of-Saint-Pauls-Hospital-Leaf-Fall-12345

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

我可以像这样去掉标点符号:

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

所以我尝试了这个尝试摆脱那个空格破折号空间:

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

但后来我得到了这个:

文森特梵高-圣保罗医院花园(落叶)-12345

标签: javascript

解决方案


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

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


推荐阅读