Как разметить телефонные номера?

Цитата:

isNaN (num) // возвращает true, если переменная НЕ содержит допустимое число

не совсем верно, если вам нужно для проверки ведущих / конечных пробелов - например, когда требуется определенное количество цифр, и вам нужно получить, скажем, «1111», а не «111» или «111», возможно, для ввода PIN-кода.

Лучше использовать:

var num = /^\d+$/.test(num)
447
задан Community 23 May 2017 в 12:18
поделиться

5 ответов

Схема tel: использовалась в конце 1990-х годов и задокументирована в начале 2000 года в RFC 2806 (который устарел более подробным RFC 3966 в 2004 г.) и продолжает улучшаться . Поддержка тел: на iPhone не была произвольным решением.

callto: хотя и поддерживается Skype, не является стандартом , и его следует избегать, если специально не нацелен на Skype. пользователи.

Я? Я бы просто начал включать правильно сформированные URI tel: на ваши страницы (без обнюхивания пользовательского агента) и ждать, пока телефоны остального мира догонят :).

Пример :

478
ответ дан 22 November 2019 в 22:57
поделиться

Поскольку callto: по умолчанию поддерживается Skype (устанавливается в настройках Skype), а другие также поддерживают его, я бы рекомендовал использовать callto: , а не скайп: .

1
ответ дан 22 November 2019 в 22:57
поделиться

Mobile Safari (iPhone и iPod Touch) используйте тел: Схема .

Как набрать номер телефона с веб-страницы на iPhone?

8
ответ дан 22 November 2019 в 22:57
поделиться

Я сохраняю этот ответ в «исторических» целях, но больше не рекомендую его. См. Ответ @Sidnicious выше и мое Обновление 2.

Поскольку это похоже на ничью между callto и tel, ребята, я хочу предложить возможное решение в надежде, что ваши комментарии вернут меня на путь света ; -)

Использование callto: , поскольку большинство настольных клиентов будут обрабатывать его:

<a href="callto:0123456789">call me</a>

Затем, если клиент - iPhone, замените ссылки:

window.onload = function () {
  if (navigator.userAgent.match (/iPhone/i)) {
    var a = document.getElementsByTagName ("a");
    for (var i = 0; i < a.length; i++) {
      if (a[i].getAttribute ('href').search (/callto:/i) === 0) {
        a[i].setAttribute ('href', a[i].getAttribute ('href').replace (/^callto:/, "tel:"));
      }
    }
  }
};

Есть возражения против этого решения? Мне лучше начать с тел: ?

10
ответ дан 22 November 2019 в 22:57
поделиться

Как и следовало ожидать, поддержка WebKit'ом tel: распространяется и на мобильный браузер Android - FYI

21
ответ дан 22 November 2019 в 22:57
поделиться
Другие вопросы по тегам:

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