首页 > 解决方案 > 将动态变量中的空格格式化为谷歌地图返回函数中的连字符

问题描述

我正在尝试格式化和替换+marker.title+输出中的空格,并将它们更改为连字符 (-) 以动态打开模式。例如San Diego转换为San-Diego。任何帮助将不胜感激。

不确定您需要查看多少代码,但这是整个循环。谢谢。

    $count = count($output);
            $i=1;
            echo 'var locations = [';
                foreach($output as $o) {
                    if ($i == $count) { $c = ''; } else { $c = ','; } 
                    echo json_encode($o) . $c;
                    $i++; 
                } 
            echo '];';
        ?>
        var marker, i;
        var infowindow = new google.maps.InfoWindow();

        google.maps.event.addListener(map, 'click', function() {
            infowindow.close();
        });

     for (i = 0; i < locations.length; i++) {
       markericon = (locations[i][7] == 'undefined') ? '' : locations[i][7];

        marker = new google.maps.Marker({
            icon: markericon,
            position: new google.maps.LatLng(locations[i][5], locations[i][6]),
            map: map,
            title: locations[i][0],
        });

        google.maps.event.addListener(marker, 'click', (function(marker, i) {

            return function() {

                $('#'+marker.title+'').modal('show');

            }

        })(marker, i));

标签: javascriptphpgoogle-mapsgoogle-maps-markers

解决方案


我了解到您想修改这行 JavaScript 代码

$('#'+marker.title+'').modal('show');

为了替换空格,-您应该将String.replace()函数与空字符串的正则表达式/\s/结合使用。因此,您的代码应更改为

 ('#'+marker.title.replace(/\s/ig, "-")+'').modal('show');

概念证明:

var title = "San Diego";
document.getElementById("result").innerHTML = title.replace(/\s/ig, "-");
<div id="result">
</div>

我希望这有帮助!


推荐阅读