我正在拦截包含以下字符的消息:
*_-
然而,无论何时这些字符中的任何一个到达,它们都会始终由
\
前缀。不过,\
仅用于格式化,我想在将其发送到服务器之前将其删除。我知道如何轻松创建正则表达式来从单个字母中删除此反斜杠:'omg\_bbq\_everywhere'.replace(/\\_/g, '')
我知道我可以针对每个要删除前置反斜杠的字符执行此操作3次。但是,如何创建一个单一的正则表达式来检测所有三个字符,并在所有3种情况下删除前置反斜杠?
我正在拦截包含以下字符的消息:
*_-
\
前缀。不过,\
仅用于格式化,我想在将其发送到服务器之前将其删除。我知道如何轻松创建正则表达式来从单个字母中删除此反斜杠:'omg\_bbq\_everywhere'.replace(/\\_/g, '')
我知道我可以针对每个要删除前置反斜杠的字符执行此操作3次。但是,如何创建一个单一的正则表达式来检测所有三个字符,并在所有3种情况下删除前置反斜杠?
您可以使用字符类,例如[*_-]
。
要仅删除这些字符前面的反斜杠:
document.body.innerHTML =
"omg\\-bbq\\*everywhere\\-".replace(/\\([*_-])/g, '$1');
当您将子模式放入捕获组((...)
)中时,您会将该子文本捕获到编号缓冲区中,然后可以使用$1
反向引用来引用它(因为模式中只有一个(...)
)。