This question already has answers here:
How to escape regular expression special characters using javascript? [duplicate]
                                
                                    (3个答案)
                                
                        
                2年前关闭。
            
        

对于特定消息格式(HL7)的消息,我正在尝试转义^符号。因此字符串abc^def^ghi应该变成abc\^def\^ghi

我尝试了以下方法:

> "abc^def^ghi".replace("^", "\^");
'abc^def^ghi'
> "abc^def^ghi".replace("^", "\\^");
'abc\\^def^ghi'
> "abc^def^ghi".replace("^", "\\\^");
'abc\\^def^ghi'
> "abc^def^ghi".replace("\^", "\\\^");
'abc\\^def^ghi'
> "abc^def^ghi".replace("\\^", "\\\^");
'abc^def^ghi'
> "abc^def^ghi".replace(/^/g, "\\\^");
'\\^abc^def^ghi'
> "abc^def^ghi".replace(/\^/g, "\\\^");
'abc\\^def\\^ghi'
> "abc^def^ghi".replace(/\^/g, "\\^");
'abc\\^def\\^ghi'
> "abc^def^ghi".replace(/\^/g, "\^");
'abc^def^ghi'
> "abc^def^ghi".replace(/\\^/g, "\\\^");
'abc^def^ghi'


如您所见,它们都不符合我的要求。有人知道我该怎么做吗?

最佳答案

"abc^def^ghi".replace(/\^/g, "\\\^")


您必须在正则表达式中转义^,因为它是一个特殊字符。

10-01 20:33
查看更多