Я знаю, что я могу ограничить API Google Адресов только возвратом адресов, используя types: ['address']
опций types: ['address']
. Мне было интересно, можно ли заставить пользователя указать адрес улицы, включая номер улицы, то есть "Drottninggatan 100", а не только "Drottninggatan"?
Если я не могу заставить это поведение, то было бы хорошим способом проверить, что пользователь выбрал что-то вроде "Drottninggatan 100", а не просто "Drottninggatan"?
(Кстати, я использую Javascript API и AngularJS)
Ну.. вы можете использовать функцию соответствия 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>
Почему бы не проверить число в начале строки адреса?
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>