Javascript Regex тестовая одиночная кавычка, двойные кавычки, прямая и обратная косые черты [дубликат]

Добавить маркер в вашу программу очень просто. Вы можете добавить этот код:

var marker = new google.maps.Marker({
  position: myLatLng,
  map: map,
  title: 'Hello World!'
});

Следующие поля особенно важны и обычно устанавливаются при создании маркера:

  • position (обязательно ) определяет LatLng, определяющий начальное местоположение маркера. Один из способов получения LatLng - использование службы геокодирования .
  • map (необязательно) указывает карту, по которой нужно поместить маркер. Если вы не укажете карту при построении маркера, маркер будет создан, но не будет привязан к карте (или отображен). Вы можете добавить маркер позже, вызвав метод setMap() маркера.

Обратите внимание: в этом примере поле заголовка задает заголовок маркера, который будет отображаться как всплывающая подсказка.

Здесь вы можете ознакомиться с Google api documenation здесь .


Это полный пример установки маркера one на карте. Будьте внимательны, вам нужно заменить YOUR_API_KEY на ваш ключ API google :




   
   
   Simple markers



 


Теперь, если вы хотите вы должны сделать вот так:

var locations = [
  ['Bondi Beach', -33.890542, 151.274856, 4],
  ['Coogee Beach', -33.923036, 151.259052, 5],
  ['Cronulla Beach', -34.028249, 151.157507, 3],
  ['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
  ['Maroubra Beach', -33.950198, 151.259302, 1]
];

function initMap() {
  var myLatLng = {lat: -33.90, lng: 151.16};

  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 10,
    center: myLatLng
    });

  var count;

  for (count = 0; count < locations.length; count++) {  
    new google.maps.Marker({
      position: new google.maps.LatLng(locations[count][1], locations[count][2]),
      map: map,
      title: locations[count][0]
      });
   }
}

В этом примере дайте мне следующий результат:


Вы также можете добавить инфо-окно в свой вывод. Вам просто нужен этот код:

var marker = new google.maps.Marker({
    position: new google.maps.LatLng(locations[count][1], locations[count][2]),
    map: map
    });

marker.info = new google.maps.InfoWindow({
    content: 'Hello World!'
    });

Здесь вы можете найти документацию Google о infoWindows здесь .


Теперь мы можем открыть инфо-окно когда маркер «clik» выглядит следующим образом:

var marker = new google.maps.Marker({
     position: new google.maps.LatLng(locations[count][1], locations[count][2]),
     map: map
     });

marker.info = new google.maps.InfoWindow({
     content: locations [count][0]
     });


google.maps.event.addListener(marker, 'click', function() {  
    // this = marker
    var marker_map = this.getMap();
    this.info.open(marker_map, this);
    // Note: If you call open() without passing a marker, the InfoWindow will use the position specified upon construction through the InfoWindowOptions object literal.
            });

Обратите внимание, что вы можете иметь документацию о Listener здесь в разработчике Google.


И, наконец, мы можем построить infoWindow в маркере, если пользователь нажмет на него. Это мой полный код:




    
    
    Info windows
    


    

Обычно вы должны иметь этот результат:

5
задан Felix Kling 27 May 2012 в 00:16
поделиться

2 ответа

Вы должны использовать литерал регулярного выражения (/.../) вместо строкового литерала ('...' или "...") в вызове replace. Строки имеют собственную интерпретацию обратных косых черт, которая срабатывает до того, как конструктор регулярных выражений получает трещину, поэтому вам нужен дополнительный уровень цитирования.

Сопоставьте одну обратную косую черту, литерал регулярного выражения: /\\/

Сопоставьте одну обратную косую черту, регулярное выражение в строке: '\\\\'

Но в литерале регулярного выражения вам также нужно поместить обратную косую черту перед передними косыми чертами, поскольку прямая косая черта - это разделитель для всего:

path += arguments[i].replace(/(\\|\/)$|^(\\|\/)/, "") + "/";

Или, если по какой-то причине вы женаты на использовании строк, это также должно работать:

path += arguments[i].replace("(\\\\|/)$|^(\\\\|/)", "") + "/";

В качестве побочного примечания , когда ваши альтернативы являются одиночными символами, (x|y) является чрезмерным; вы можете просто использовать классы символов: [xy]. В этом случае вы получите следующее:

path += arguments[i].replace(/[\\\/]$|^[\\\/]/, "") + "/";

path += arguments[i].replace("[\\\\/]$|^[\\\\/]", "") + "/";
11
ответ дан Mark Reed 29 August 2018 в 02:25
поделиться

Попробуйте это ... немного легче следовать с [классами символов]. для соответствия одному \ с строкой javascript вам нужно \\\\, что может быть тем, что происходит.

new Regexp('^[\\\\/]|[\\\\/]$')

Вы также можете попробовать нотацию /^[\\\/]|[\\\/]$/g .

s = 'c:\\folder\\'
console.log(s.replace(/^[\\\/]|[\\\/]$/g, ''))
4
ответ дан agent-j 29 August 2018 в 02:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: