Javascript 正则表达式:如何删除匹配字符串之前的字符?
我正在拦截包含以下字符的邮件:Javascript 正则表达式:如何删除匹配字符串之前的字符?,javascript,regex,string,Javascript,Regex,String,我正在拦截包含以下字符的邮件: *_- 但是,每当这些字符中的任何一个出现时,它的前面总是有一个\。\只是用于格式化,我想在将其发送到服务器之前将其删除。我知道如何轻松创建一个正则表达式,从单个字母中删除此反斜杠: 'omg\_bbq\_everywhere'.replace(/\\_/g, '') 我认识到我可以做这个操作3次:对于我想要删除前面反斜杠的每个字符,一次。但是如何创建一个正则表达式来检测所有三个字符并在所有三种情况下删除前面的反斜杠呢?您可以使用类似[*.-]的字符类 要仅删
*_-
但是,每当这些字符中的任何一个出现时,它的前面总是有一个\
。\
只是用于格式化,我想在将其发送到服务器之前将其删除。我知道如何轻松创建一个正则表达式,从单个字母中删除此反斜杠:
'omg\_bbq\_everywhere'.replace(/\\_/g, '')
我认识到我可以做这个操作3次:对于我想要删除前面反斜杠的每个字符,一次。但是如何创建一个正则表达式来检测所有三个字符并在所有三种情况下删除前面的反斜杠呢?您可以使用类似
[*.-]
的字符类
要仅删除这些字符前的反斜杠,请执行以下操作:
*_-
document.body.innerHTML=
“omg\\-bbq\\\*无处不在\-”。替换(/\\\([*\-])/g,$1')代码>这是使用原子匹配的好时机。具体来说,您需要检查斜杠,然后对这些字符中的任何一个进行正向前瞻
忽略代码,您需要的原始正则表达式是:
\\(?=[*.-])
文字反斜杠,前面有以下字符之一:*_-
现在你正在匹配斜线。原子匹配是长度为0的匹配,因此它不匹配任何内容,但设置了一个要求“要使其成为有效匹配,需要后跟[*.-]”
原子群:
环顾语句:
正向和负向的前向和后向匹配可用。'omg\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\。