簡體   English   中英

寫入文件時添加了奇怪的字符

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM