/ / Regex JavaScript замінює внутрішні котирування - javascript

JavaScript regex замінює внутрішні котирування - javascript

Я намагаюся виправити вбудований фрагмент JavaScript, який буде переписаний на поле введення.

У мене є одинарні лапки, які обертають внутрішні подвійні лапки, і я хочу перетворити внутрішні лапки, щоб вони були єдиними замість подвійних, але я хочу тільки перетворити їх, коли код з'являється як вкладені лапки.

Зараз я "m роблять перетворення для всіх випадків цитату, яка працює, але я можу зіткнутися з іншою проблемою.

JavaScript

$(document).ready(function() {
$(".submit").bind("click", function(e) {
var yourstring = $("textarea").val();
yourstring = yourstring.replace(/"/g, """");
yourstring = yourstring.replace(/&quote;/g, """);
yourstring = yourstring.replace(/&lquote;/g, """);
yourstring = yourstring.replace(/&rquote;/g, """);
yourstring = yourstring.replace(/&#34/g, """);
yourstring = yourstring.replace(/“/g, """);
yourstring = yourstring.replace(/”/g, """);
yourstring = yourstring.replace(/"/g, """);
alert(yourstring)
});
});​

HTML

<textarea style="width:400px;height:300px;">
function("");

<a onclick="$(".text").append("test");">Click Me</a>
<br/>
&lquote;test quotes&rquote;

&quot; generic quotes &quot;
</textarea>

<input type="submit" class="submit">

Бути більш конкретним я намагаюся отримати

<a onclick="$(".text").append("test");">Click Me</a>

Щоб виглядати

<a onclick="$(".text").append("test");">Click Me</a>

Відповіді:

0 для відповіді № 1

Наведений приклад не має жодного відношення до бази даних, але є проблемою з кодом JavaScript у межах onclick атрибут. Цей код насправді не має дійсного синтаксису, але я думаю, що ви намагаєтеся створити якийсь редактор для HTML-коду.

Якщо ви вирішили не дотримуватися рекомендацій у наведених вище коментарях (з якими я згоден), щоб відповісти на своє запитання, тут можна видалити подвійні лапки для тексту, оточеного ними:

var s = "<a onclick="$(".text").append("test");">Click Me</a>";
var re = /"(.*)"/g;
var r = s.replace(re, function($0, $1) { return """ + $1.replace(/"/g, """") + """; });
console.log(r);
​