ES6 wprowadziła template strings ograniczoną przez backticks `
.zmiana ograniczników ciągu na backticks: możliwy wpływ?
W jakich przypadkach byłoby zastąpienie pojedynczych lub podwójnych "
'
cudzysłowie sznurku przez backticks uzyskując inny wynik, lub w inny sposób być niebezpieczne?
Ucieczka z istniejących zwrotników wewnątrz kodu jest wykonywana w ramach operacji.
// before
var message = "Display backtick ` on screen";
// after
var message = `Display backtick \` on screen`;
Rozumiem, że każdy łańcuch zawierający ${...}
zawiedzie, ponieważ byłoby to (mis) interpretowane jako zastępczy. Czy są jakieś inne istotne wzorce?
Kontekst: jest to dla development of a JS compression tool, który automatycznie przetwarza kod wejściowy. Ten ostatni i zawarte w nim ciągi są dostarczane przez użytkownika, dlatego nie mam kontroli nad jego zawartością. Jedynym założeniem, które można zrobić, jest to, że jest to poprawny skrypt JavaScript.
Środowisko wykonawcze może być wykonane przez dowolną nową przeglądarkę lub węzeł Node.js.
Co powiesz na coś takiego: var message = "Cześć, jestem Mike, miło cię poznać". Czy to wyjdzie jako \ "Hello, I \\ m Mike, to miło cię poznać \? –
@SariRahal OP poprosił o zamianę cytatów * wokół * ciągu znaków. –
Czy mogę zaproponować użycie parsera do przetwarzania kodu, zamiast myśleć o tym, używając go do wyszukiwania i zamiany? http://esprima.org/ powinien mieć wszystkie potrzebne funkcje. – Tomalak