Принудительно указывать улицу с помощью Google Places Autocomplete?

0

Я знаю, что я могу ограничить API Google Адресов только возвратом адресов, используя types: ['address'] опций types: ['address']. Мне было интересно, можно ли заставить пользователя указать адрес улицы, включая номер улицы, то есть "Drottninggatan 100", а не только "Drottninggatan"?

Если я не могу заставить это поведение, то было бы хорошим способом проверить, что пользователь выбрал что-то вроде "Drottninggatan 100", а не просто "Drottninggatan"?

(Кстати, я использую Javascript API и AngularJS)

Теги:
google-maps

2 ответа

0

Ну.. вы можете использовать функцию соответствия javascript с регулярным выражением, чтобы проверить формат ввода... В следующем примере будет проверяться, содержит ли адрес хотя бы число.

var resultBox = document.getElementById("ifValid");

function textboxChanged(){
    var address=document.getElementById("address").value;
    
    
    if (address.match(/[0-9]/i)==null){
        resultBox.style.color="red";
        resultBox.innerHTML="not valid";
    } else {
        resultBox.style.color="green";
        resultBox.innerHTML="valid";
    }

}
<input type="text" id="address" placeholder="enter an address" onkeyup="textboxChanged()">
    
<p id="ifValid" style="color: red;">not valid</p>
  • 1
    Я думал о той же проверке, но, к сожалению, она не будет действительной, если пользователь ввел почтовый индекс. Это было бы ложное истинное возвращение. Так что печальный гугл не предоставляет нам эту опцию.
  • 1
    это решение имеет проблему. иногда номера улиц не являются номерами
-1

Почему бы не проверить число в начале строки адреса?

var resultBox = document.getElementById("ifValid");

function textboxChanged() {
  var address = document.getElementById("address").value;

  var parts = address.split(' ');
  if (parts.length > 1 && !isNaN(parts[0]) && parts[1].length > 0) {
    resultBox.style.color = "green";
    resultBox.innerHTML = "valid";
  } else {
    resultBox.style.color = "red";
    resultBox.innerHTML = "invalid";
  }

}
<input type="text" id="address" placeholder="enter an address" onkeyup="textboxChanged()">
<p id="ifValid" style="color: red;">not valid</p>

JS Bin demo: https://jsbin.com/vayanu

  • 0
    Плохая практика Номер улицы может быть, например, 5А. Автозаполнение Google Адресов предоставляет данные о месте в объекте, а номер улицы отделен от остальных данных.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню