Не используйте «метод JavaScript String replace ()».Он заменит первое появление специальных символов.если у вас есть 2 вхождения одинаковых специальных символов в параметре фильтрации, произойдет сбой.Поэтому используйте регулярное выражение для замены символов.
function replaceSpecialCharacters(attribute) {
// replace the single quotes
attribute = attribute.replace(/'/g, "''");
attribute = attribute.replace(/%/g, "%25");
attribute = attribute.replace(/\+/g, "%2B");
attribute = attribute.replace(/\//g, "%2F");
attribute = attribute.replace(/\?/g, "%3F");
attribute = attribute.replace(/#/g, "%23");
attribute = attribute.replace(/&/g, "%26");
return attribute;
}
Также обратите внимание, поскольку в заменах также содержится %
, а затем %
; его следует заменить в начале