/ / JavaScript regex zastępuje cytaty wewnętrzne - javascript

JavaScript regex zastępuje wewnętrzne cytaty - javascript

Próbuję naprawić wbudowany fragment kodu javascript z reg ex, który ma zostać przepisany w polu wejściowym.

Mam pojedyncze cudzysłowy, które zawijają wewnętrzne podwójne cudzysłowy i chcę przekonwertować wewnętrzne cudzysłowy na pojedyncze zamiast podwójnych, ale chcę je przekonwertować tylko wtedy, gdy kod pojawia się jako zagnieżdżone cudzysłowy.

W tej chwili dokonuję konwersji dla wszystkich wystąpień cytatu, który działa, ale mogę napotkać inny problem. Załączę mój kod poniżej.

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">

Mówiąc ściślej, staram się zdobyć

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

Wygladać jak

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

Odpowiedzi:

0 dla odpowiedzi № 1

Podany przykład nie wydaje się mieć nic wspólnego z bazą danych, ale problem z kodem JavaScript w pliku onclick atrybut. Ten kod nie ma poprawnej składni, ale zgaduję, że próbujesz zbudować jakiś edytor kodu HTML.

Jeśli zdecydujesz się nie stosować się do zaleceń zawartych w powyższych komentarzach (z którymi się zgadzam), aby odpowiedzieć na twoje pytanie, oto opcja usuwania podwójnych cudzysłowów dla tekstu już otoczonego:

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);
​