Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

243
Vistas
¿Cómo puedo escapar de las comillas invertidas en la variable de cadena Php/Laravel?

Me encuentro con un problema en el que estoy asignando una variable Laravel (en hoja) a una variable JS, pero la variable Laravel tiene múltiples comillas dobles y simples, acentos graves y líneas finales sin escape. Si uso una función de PHP como addslashes , JS me da el siguiente error:

 Uncaught SyntaxError: "" string literal contains an unescaped line break

¿Hay algún ayudante de Laravel o algo que pueda escapar de los acentos graves en la cadena? ¿O hay algún ayudante que pueda escapar de mis saltos de línea sin escape? Podría usar ese mandato con barras adicionales.

Mi código de Laravel:

web.php

 Route::get("/{user:username}/{note:share_token}", [HomeController::class, "share"])->name("note.share.index")->withoutMiddleware(["auth"]);

HomeController.php

 public function share(User $user, Note $note) { if ($user->username === $note->user->username) { $note->body = addslashes($note->body); return view("share", ["user" => $user, "note" => $note]); } abort(404); }

JavaScript

 let body = "{{ $note->body }}";

Básicamente, mi variable laravel es el valor del editor de monaco en la base de datos y quiero establecer el valor del editor de monaco desde JS para que no pueda colocar directamente la variable en html. Si debo usar fetch/ajax, puedo manejar esto adecuadamente, pero no quiero usar eso, será una pérdida de recursos y tiempo.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

He encontrado una solución por el momento

Escapo de las comillas invertidas (`) y los saltos de línea (\n) en esto para que pueda manejarse en JS

HomeController.php

 public function share(User $user, Note $note) { if ($user->username === $note->user->username) { $note->body = str_replace('`', '\`', $note->body); $note->body = str_replace(array("\r\n", "\n", "\r"), '\\n', $note->body); // dd($note->body); return view("share", ["user" => $user, "note" => $note]); } abort(404); }

Y usé {!! $note->body !!} para que no se escapen los caracteres html.

JavaScript

 let body = `{!! $note->body !!}`;

Mi analizador de rebajas escapará automáticamente a los caracteres que lo necesitan. Hice esto porque se escapaban todos los caracteres html, las comillas dobles y los corchetes angulares, y dado que ya se habían escapado, el analizador de rebajas no los analizaba. Estoy usando Remarkable y no analiza html (se le escapa), solo rebaja. Así que es relativamente seguro, supongo.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda