目標是匹配/ and /gu并/ or /gu用 and 替換它們,' AND '但' OR '如果它們在引號內,則不應進行替換。
例如,如果字串是term:"cat and dog" and keyword:view or keyword:impression,則應將其替換為term:"cat and dog" AND keyword:view OR keyword:impression.
我已經嘗試過了,但它并不完全有效:[^'"]*(?=(?:(['"]) (.*?\1))|([^'"]*$))((?=.* and )|(?=.* or ))
uj5u.com熱心網友回復:
我們可以在這里嘗試一個正則運算式替換,在一個交替的幫助下:
var input = "term:\"cat and dog\" and keyword:view or keyword:impression";
var output = input.replace(/".*?"|\w /g, (x) => x.match(/^(?:and|or)$/i) ? x.toUpperCase() : x);
console.log(output);
這里的訣竅是首先搜索"..."術語。那次失敗,我們匹配任何其他詞,一次一個。然后,在回呼替換中,我們忽略雙引號術語,從而忽略and或or在雙引號內。我們只通過大寫它們來實際替換and/ 。or
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/528903.html
