[英]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.