簡體   English   中英

逃避字符串中的正則表達式

[英]Escape regex within string

我有一大塊HTML / CSS / JS,它通過腳本標簽提供給第三方網站。 腳本標記有一個id,我用它來匹配並在正確的位置插入內容(沒有討厭的document.write )。 但是,我遇到了一個非常奇怪的錯誤。 任何帶有正則表達式的行似乎從字符串中逃脫。 下面是一個問題行的示例(導致問題的一些問題):

+"        // preceding code"
+"        var remSpc = new RegExp('[\$%,]', 'ig');"
+"        // following code"

正確轉義前面和后面的行,中間行的語法對我來說是正確的,但它會拋出“意外的輸入結束”錯誤,WebKit Inspector將其顯示為未轉義。 屏幕下方顯示未轉義的含義:

在此輸入圖像描述

正則表達式的目的是從$ amount和百分比中刪除特殊字符(示例值可能是“$ 1,000”或“5.5%”。我嘗試不使用RegExp對象而只是執行`/ [\\ $%,] / ig和我得到完全相同的問題。

注意問題不在於這個正則表達式,特別是我有幾個正則表達式,每個包含一個的正則行為都表現相同。

字符串中的字符串應該雙重轉義:

//...
+"        var remSpc = new RegExp('[\\\\$%,]', 'ig');"

第一個\\是逃避第二個\\

編輯:根據Felix的評論將其更改為\\\\\\\\ 我們需要這個,因為通常情況是:

/...\$.../

但是,正則表達式是一個字符串所以:

'...\\$...'

然后,該字符串位於另一個字符串中,用於評估:

"...'...\\\\$....'..."

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM