[英]Strange character added when writing to file
我将以下行作为javascript写到html文件的末尾。 由于某种原因,将place变量写入文件后,将添加新行或一些类似字符。 我不会介意,因为我不会浏览书面脚本,但是chrome告诉我它是非法字符。
写入html的代码:
map_html.write(
"geocoder.geocode( { 'address': '" + place + "'}, function(results, status) {\n\
var marker = new google.maps.Marker();\n\
marker.setPosition(results[0].geometry.location);\n\
marker.setMap(map);\n\
bounds.extend(marker.position);\n\
});\n"
)
输出:
geocoder.geocode( { 'address': 'Brooklyn, NY
'}, function(results, status) {
var marker = new google.maps.Marker();
marker.setPosition(results[0].geometry.location);
marker.setMap(map);
bounds.extend(marker.position);
});
将代码替换为:
var geo_json = JSON.stringify({ 'address': place});
map_html.write(
"geocoder.geocode(" + geo_json + ", function(results, status) {\n\
var marker = new google.maps.Marker();\n\
marker.setPosition(results[0].geometry.location);\n\
marker.setMap(map);\n\
bounds.extend(marker.position);\n\
});\n"
)
这将避开该问题,并使您可以看到stringify
ed json的外观。 编写自己的json通常不是一个好主意。 让javascript生成json,这非常有用。
如果仍然引起疼痛,请尝试var geo_json = JSON.stringify({ 'address': place.trim()});
它将从place
字符串的末端去除空格。
如果仍然引起疼痛,请尝试使用正则表达式来验证place
输入。 像[A-Za-z_ ,]+
编辑
哦,废话,我在这里混合了javascript和python。
import json
geo_json = json.dumps({ 'address': place})
map_html.write(
"geocoder.geocode(" + geo_json + ", function(results, status) {\n\
var marker = new google.maps.Marker();\n\
marker.setPosition(results[0].geometry.location);\n\
marker.setMap(map);\n\
bounds.extend(marker.position);\n\
});\n"
)
尝试多行字符串怎么样?
map_html.write(
"geocoder.geocode( { 'address': " + place + "}, function(results, status) {" + """
var marker = new google.maps.Marker();
marker.setPosition(results[0].geometry.location);
marker.setMap(map);
bounds.extend(marker.position);
});
"""
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.