Номер телефона Regex в Safari, используя Javascript - PullRequest
0 голосов
/ 24 марта 2020

Я использую jquery / javascript, чтобы добавить ссылки на номера телефонов в таблицу с номерами телефонов. Номера телефонов в этом формате: 222-222-1234 или 222-111-1111 (местный номер: 11111) в HTML. У меня нет доступа для изменения исходного кода.

Html код:

    <td>222-222-1234<td>
    <td>222-111-1111 (local ext is: 1111)</td>

С моим кодом я пытаюсь получить это:

    <td><a href="tel:222-222-1234">222-222-1234</a><td>
    <td>
       <a href="tel:222-111-1111">222-111-1111</a>(local ext is: 1111)
    </td>

Вот мой код:

var regex = /\(?([0-9]{3})\)?([ .-]?)([0-9]{3})\2([0-9]{4})/;
$('#Listing table tr td:nth-child(3), #ListingTable tr td:nth-child(3)').each(function() {
    var text = $(this).html();
    text = text.trim();
    text = text.replace(regex, '<a href=\"tel:$&\">$&</a>');
    $(this).html(text);
});

Похоже, он работает в Chrome / Firefox / IE, но на моем Safari на Ipad номер телефона отображается как 222-222-1234 ". > с "> в конце. Я не знаю, является ли это проблемой в Safari на Ios, поскольку у меня нет Ma c.

Как мне избавиться от "> в конце в Safari?

1 Ответ

0 голосов
/ 24 марта 2020

Вам не нужно регулярное выражение для этого. Вы можете использовать метод html(). Предоставьте ему функцию, которая принимает текущую строку HTML в качестве аргумента. Он будет содержать текущее значение телефонного номера, которое можно обернуть в элемент <a> и вернуть в качестве нового значения. Попробуйте это:

$('#Listing table tr td:nth-child(3)').html((i, h) => `<a href="tel:${h}">${h}</a>`);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="Listing">
  <table>
    <tr>
      <td>Lorem</td>
      <td>Ipsum</td>
      <td>222-222-1234</td>
    </tr>
    <tr>
      <td>Foo</td>
      <td>Bar</td>
      <td>222-987-6543</td>
    </tr>
  </table>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...