A critique of cgi.escape

Lawrence D'Oliveiro ldo at geek-central.gen.new_zealand
Sat Oct 7 23:44:49 CEST 2006


Another useful function is this:

    def JSString(Str) :
        """returns a JavaScript string literal that evaluates to Str. Note
        I'm not worrying about non-ASCII characters for now."""
        Result = []
        for Ch in Str :
            if Ch == "\\" :
                Ch = "\\\\"
            elif Ch == "\"" :
                Ch = "\\\""
            elif Ch == "\t" :
                Ch = "\\t"
            elif Ch == "\n" :
                Ch = "\\n"
            #end if
            Result.append(Ch)
        #end for
        return "\"" + "".join(Result) + "\""
    #end JSString

This can be used, for instance in

    sys.stdout.write \
      (
            "window.setTimeout(%s, 1000)\n"
        %
            JSString("alert(%s)" % JSString("Hi There!"))
      )




More information about the Python-list mailing list