Подтвердить что ты не робот

Регулярное выражение для замены одной кавычки двумя одиночными кавычками

Я столкнулся с проблемой, которая, как мне кажется, вызвана необходимостью удлиннения некоторых одиночных кавычек внутри строки. Однако JS string.replace использует RegEx, и я никогда не создавал RegEx вручную.

Может кто-нибудь помочь мне создать RegEx, чтобы найти одну цитату и заменить ее двумя одинарными кавычками?

4b9b3361

Ответ 1

Попробуйте следующее:

yourstring = yourstring.replace(/'/g, "''")

Ответ 2

str.replace(/'/g, "''");

Обязательно используйте глобальный флаг соответствия (g), чтобы заменить любые и все вхождения в строке. Подробнее здесь.

Ответ 3

JS string.replace использует RegEx

Не обязательно:

var str = "O'Reilly books";
alert(str.replace("'", "''", 'g'));

Ссылка на строку MDC:

Шаблон может быть строкой или RegExp

Ммм, мой код выше не работает на IE6, так что будет:

str.replace(/'/g, "''")

как и другие, но использование регулярных выражений для такой простой операции является излишним.

Ответ 4

Попробуйте следующее:

function QuoteEncoding(strvalue) {
    var strquotes = /(')/g;
    return "'" + strvalue.replace(strquotes, "''") + "'";
}

вызовите этот метод следующим образом:

QuoteEncoding(strvalue);

Ответ 5

Обратите внимание, что если вы не хотите использовать RegExp (и часто бывают веские причины этого не делать), идиома для простой замены строки:

str.split("'").join("''")

Хотя версия RegExp, как правило, немного быстрее, версия строки может быть победой, если вы не знаете, могут ли в строке поиска быть специальные символы регулярного выражения (например, .).

Ответ 7

Я не знаю точного синтаксиса, но вы можете найти это сами:

str.replace(/(?!')'(?!')/g, "''");

Не тестировал это еще, но если он работает, он также заботится только о замене случаев одиночной кавычки одна. Модификатор g необходим для замены всех ошибок.

Ответ 8

js> s = "abc'def'xyz"
abc'def'xyz
js> s.replace(/'/g, "''")
abc''def''xyz