我正在拦截包含以下字符的消息:
*_-
但是,无论何时出现这些字符中的任何一个,它前面总会有一个\
。 \
只是用于格式化,我想在将它发送到我的服务器之前将其删除。我知道如何轻松创建一个正则表达式,从单个字母中删除这个反斜杠:
'omg\_bbq\_everywhere'.replace(/\\_/g, '')
而且我知道我可以只执行此操作 3 次:对于每个我想删除其前面的反斜杠的字符一次。但是我如何创建一个正则表达式来检测所有三个字符并在所有 3 种情况下删除前面的反斜杠?
最佳答案
您可以使用像 [*_-]
这样的字符类.
仅删除这些字符前的反斜杠:
document.body.innerHTML =
"omg\\-bbq\\*everywhere\\-".replace(/\\([*_-])/g, '$1');
当您将子模式放入捕获组 ((...)
) 时,您将该子文本捕获到编号缓冲区中,然后您可以使用 $1
引用它。反向引用(1 因为模式中只有一个 (...)
。)
关于javascript - 正则表达式:如何删除匹配字符串之前的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35231026/