删除字符串REGEX中的正斜杠但不删除日期格式

时间:2019-03-12 06:17:55

标签: javascript regex

我具有以下格式的字符串

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

在上述情况下,我想删除moj/f112Major/P1中的正斜杠(/),但不要删除日期11/03/2019

我尝试了\D\/\D/ig,但是它将选择所有正斜杠并进行了类似^(\d{2}\/\d{2}\/\d{4})(and ?)\D\/\D/ig的试验。 我不习惯使用正则表达式,并且运行时间很短。

有什么帮助吗?

非常感谢。 :)

3 个答案:

答案 0 :(得分:1)

您可以使用此交替正则表达式首先匹配并分组要保留的内容,然后将/匹配为交替中的最后一个选项:

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

答案 1 :(得分:1)

此正则表达式将匹配{斜杠+两位数字+斜杠}和其余的斜杠,然后我们可以替换其余的斜杠。

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)

Working example

答案 2 :(得分:1)

这是另一种选择。

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);