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(/"e;/g, """);
yourstring = yourstring.replace(/&lquote;/g, """);
yourstring = yourstring.replace(/&rquote;/g, """);
yourstring = yourstring.replace(/"/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;
" generic quotes "
</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 № 1Podany 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);