Får i varje fall samma scriptfel när jag kört en replace på det.
<%=stationVO.getStationname().replaceAll("'", "\'")%>
ie
om jag kör en replace enl:
<%=stationVO.getStationname().replaceAll("'", "blabla)%>
så får jag inget scriptfel
Efter att ha testat diverse escapesekvener
\$ , #{ osv så kom jag fram till att denna fungerar på rätt sätt.
<%=stationVO.getStationname().replaceAll("'", "\\\\'")%>
Skälet till att du behöver fyra \ i starten, är att ett \ måste överleva TVÅ escapade miljöer. Först körs strängen genom ditt serverscript, som tolkar \\ som \. Sådana har du två av. Den kod som skickas till webbläsaren och JS-tolken är därför '\\'.
Sedan tolkar JS denna sträng och resultatet blir då den \ du från början ville ha in.
(Denna "dubbel-escaping" satte rejäla myror i huvudet på mig för drygt ett år sedan.)
326 ms totalt · 4 externa anrop · v20260731065814-full.0583408b