Замените или удалите определенный символ между двумя символами в JavaScript с помощью регулярных выражений - PullRequest
0 голосов
/ 19 декабря 2018

заменить определенный символ между двумя символами в javascript, используя регулярное выражение

Мое конкретное требование:

Я хочу заменить одинарные кавычки между двойными кавычками.

Пример: sdadads 'sdasdads "это цитата" -> sdadads's dasdads "это цитата"

я пытался

`sdadads'sdasdads"this is the 'quote"`.replace(/\"[^\']\"/g, 'replaced')

, но вывод

sdadads'sdasdadsreplaced

Ответы [ 3 ]

0 голосов
/ 19 декабря 2018

Отрицательный внешний вид переменной ширины не разрешен в Javascript, поэтому вы можете использовать оператор \ K, чтобы определить, находится ли ' между двумя двойными кавычками или не использовать это регулярное выражение,

"[^']*\K'(?=[^']*")

Объяснение:

  • " -> Соответствует двойной кавычке
  • [^']* -> Соответствует нулю или более символам, кроме одной одинарной кавычки
  • \K -> Сбрасывает все совпадения до сих пор
  • ' -> Соответствует буквальной одинарной кавычке
  • (?=[^']*") -> Смотрите вперед, проверяя наличие двойной кавычкипосле нуля или более любые символы, кроме одной кавычки

Live Demo

0 голосов
/ 19 декабря 2018

Вы можете использовать это .replace с функцией :

var str = `"this 'is 'the 'quote"`

var repl = str.replace(/"[^"]*"/g, function($0) { 
           return $0.replace(/'/g, ""); });

console.log(repl);
//=> "this is the quote"
  • Использование простого регулярного выражения для сопоставления "..." строки с использованием отрицательного класса символов
  • Внутри функции мы удаляем все одинарные кавычки
0 голосов
/ 19 декабря 2018

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

(")([^"]+)(")

let str = `sdadads'sdasdads"this is the 'quote"`;
let res = str.replace(/(")([^"]+)(")/g, function(_, g1, g2, g3) {
  return g1 + g2.replace("'", "") + g3;
});
console.log(res);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...