Javascript - 替换%之间的字符

时间:2017-06-27 16:03:51

标签: javascript regex replace

这可能是一个简单的问题。无法解决这个问题..

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(),没有任何复杂的正则表达式模式。

1 个答案:

答案 0 :(得分:-2)

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

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

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

RegEx Demo

这个正则表达式将匹配单引号(如果它们在%个字符内,方法是使用前瞻以确保单引号后有偶数%个字符。