Javascript - 替换介于两者之间的字符



这可能是一个简单的。无法理解它。.

var str = "ADV.ACCOUNT_NAME ILIKE '%a'b%' OR ADV.ACCOUNT_NAME ILIKE '%cd%'"

现在我需要将字符串部分中的单引号替换为 2 个单引号'%a'b%'。我正在寻找的结果将是

"ADV.ACCOUNT_NAME ILIKE '%a''b%' OR ADV.ACCOUNT_NAME ILIKE '%cd%'"

抱歉,我是正则表达式文盲。请帮忙

编辑:仅当单引号在%个字符内时才需要替换

我尝试了简单的.replace(),没有任何复杂的正则表达式模式。

假设输入中有平衡且未转义的%字符。

您可以使用此 Javascript 正则表达式替换:

str = str.replace(/'(?!(?:(?:[^%]*%){2})*[^%]*$)/mg, "''");

正则表达式演示

如果单引号位于%字符内,则此正则表达式将使用前瞻来匹配单引号,以确保单引号后有偶数个%字符。

相关内容

最新更新