Javascript заменяет пробел на тире, кроме пробела до и после тире - PullRequest
1 голос
/ 07 ноября 2019

Я пытаюсь изменить строку, используя JavaScript. Я должен заменить все пробелы на -, кроме пробела до или после тире.

Например:

const url= 'This is an - url';
let newUrl = url.replace(/\s+/g,'-');
let newUrlLowerCase = newUrl.toLowerCase();

это даст мне результат this-is-an---url, что мне нужноthis-is-an-url

Как мне это сделать с помощью JavaScript?

Ответы [ 2 ]

6 голосов
/ 07 ноября 2019

Вы можете сопоставить пробел или тире в наборе символов и повторить его, заменив его одним штрихом:

const url = 'This is an - url';
let newUrl = url.replace(/[\s-]+/g, '-').toLowerCase();
console.log(newUrl);
2 голосов
/ 07 ноября 2019

Вы можете заменить - на ' ' до замены пробела

const url= 'This is an - url';
let newUrl = url.replace('-',' ').replace(/\s+/g,'-')
let newUrlLowerCase = newUrl.toLowerCase();
console.log(newUrlLowerCase)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...