Удалить косую черту, но не формат даты в строке REGEX - PullRequest
0 голосов
/ 12 марта 2019

У меня есть строка следующего формата

Pending status started at 11/03/2019 11:32
User: XY_Z
moj/f112
Reason: Linked to Major/P1 Ticket

В приведенном выше сценарии я хочу удалить косую черту (/) в moj/f112 и Major/P1, но не в дате, т.е. 11/03/2019.

Я попробовал \D\/\D/ig, но затем он выберет все косые черты и проведет несколько попыток, таких как ^(\d{2}\/\d{2}\/\d{4})(and ?)\D\/\D/ig.Я не привык работать с регулярными выражениями и не хватает времени.

Любая помощь?

Большое спасибо заранее.:)

Ответы [ 3 ]

1 голос
/ 12 марта 2019

Это регулярное выражение будет соответствовать {косая черта + две цифры + косая черта} и остальным слешам, а затем мы сможем заменить остальные косые черты.

const str = `Pending status started at 11/03/2019 11:32
User: XY_Z
moj/f112
Reason: Linked to Major/P1 Ticket`;

const regex = /(\/\d{2}\/)|\//g;
let modifiedStr = str.replace(regex, '$1');
console.log(modifiedStr)

Рабочий пример

1 голос
/ 12 марта 2019

Вот еще один вариант.

var str = `Pending status started at 11/03/2019 11:32
User: XY_Z
moj/f112
Reason: Linked to Major/P1 Ticket`;

var newString = str.replace(/[^\d{1,2}\/\d{1,2}\/\d{4}]\//gm, '');

console.log(newString);
1 голос
/ 12 марта 2019

Вы можете использовать это регулярное выражение чередования, чтобы сначала сопоставить и сгруппировать то, что вы хотите сохранить, а затем сопоставить / как последний вариант чередования:

var str = `Pending status started at 11/03/2019 11:32
User: XY_Z
moj/f112
Reason: Linked to Major/P1 Ticket`

var re = /(\b(?:\d{1,2}\/){2}\d{4}\b)|\//

var repl = str.replace(re, '$1')

console.log(repl)

RegEx Demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...