如何在包含转义字符的javascript中生成文本

时间:2014-10-29 16:17:28

标签: jquery

我正在尝试通过javascript生成以下文字

http:\\24.157.150.93:8080\......\json={"location": "123","screen": "456","ident": "789"}

我试过以下

var url = "24.157.150.93:8080" ;
var location = "123";
var screen = "456" ;
var ident = "789";

var text = "http:\\"+url+"\......\json={"'location'": '"+location+"',"'screen'": '"+screen+"',"'ident'": '"+ident+"'}";

alert(text);

但我得到了

未捕获的SyntaxError:浏览器控制台下的意外字符串

很抱歉,我无法发布jsfiddle链接,因为它不允许我保存此内容

有人可以帮我解决如何用指定的输入值生成上面的字符串吗?

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

var text = "http:\\"+"\\"+url+"\\......\\json={"+'"location"'+": "+location+","+'"screen"'+": "+screen+","+'"ident"'+": "+ident+"}";

答案 1 :(得分:0)

应该是:

var text = "http://"+url+"/....../json="+encodeURIComponent("{\"location\": \""+location+"\",\"screen\": \""+screen+"\",\"ident\": \""+ident+"\"}");

URL使用正斜杠而不是反斜杠,并且符合JSON要求使用双引号,而不是单引号。如果JSON数据是在URL中发送的,您还应该对其进行URL编码。我猜你要么忘记了你的URL中的?字符来启动查询字符串,要么忘记了#来启动一个锚。

但是,如果您希望它完全您在帖子中要求的文字,那么它将如下所示:

var text =  "http:\\\\"+url+"\\......\\json={\"location\": \""+location+"\",\"screen\": \"+screen+\",\"ident\": \""+ident+"\"}";

没有真正的诀窍,除非你必须用"替换\"\字符以及\\ {{1}}