testpie.go 711 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package main
  2. import (
  3. //"fmt"
  4. "strings"
  5. "unicode/utf8"
  6. )
  7. var key string="name"
  8. func main() {
  9. //apostrophe
  10. src := "aaaaaaaaaa`"
  11. src += `
  12. bbbbbbbbbbbb
  13. cccccccccccccccc
  14. `
  15. src += "`ddddddddddddd"
  16. println( PrepareJS(src) )
  17. }
  18. func PrepareJS(src string) string {
  19. idx := 0
  20. b:= new(strings.Builder)
  21. escape := false
  22. for idx < len(src) {
  23. rune, adj := utf8.DecodeRuneInString( src[idx:] )
  24. if rune == '\n' {
  25. if escape {
  26. b.WriteString(`\`)
  27. b.WriteRune(rune)
  28. }else{
  29. b.WriteRune(rune)
  30. }
  31. }else if rune == '`'{
  32. if escape {
  33. escape = false
  34. }else{
  35. escape = true
  36. }
  37. b.WriteString(`"`)
  38. }else{
  39. b.WriteRune(rune)
  40. }
  41. idx += adj
  42. }
  43. return b.String()
  44. }