krzysztof_kf
29.01.2019, 12:06:24
Witam, mam problem, z którym od dłuższego czasu borykam się.
Mam pole, w którym są zapisywane numery telefonów, ale nie tylko.
Wygląda to tak
(43) 443-43-44, 653-049-000
w tym polu występują również różne wyrazy itp. itd.
Jest realne, aby z tego pola wyciągnąć tylko numery telefonów, które na urządzeniach mobilnych zamienią się na łącze?
vokiel
29.01.2019, 12:28:32
Jeśli nie masz możliwości zapisywania numerów w osobnych polach i musisz je wyciągać z treści, to pozostaje regex, a następnie zastępowanie numerów tagiem
<a href="tel:TUTAJ_NUMER">TUTAJ_NUMER
</a>
krzysztof_kf
29.01.2019, 14:15:59
Jak się za to zabrać.
Dobra, poradziłem sobie.
Jednak nie do końca to działa.
Mam taki kod
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> var html = jQuery("div.contact-person-telephone").html();
console.log(html);
html = html.replace(/[0-9]{3}-[0-9]{3}-[0-9]{3}\s+|[0-9]{3}-[0-9]{3}-[0-9]{2}\s/g, function(match) {
return '
<a href="tel:' + match + '">Call me
</a> ';
});
console.log(html);
jQuery("div.contact-person-telephone").html(html)
<?php
$test = "test 594-444-304 test1";
?>
<div class="contact-person-telephone"> <?php echo $test; ?>
Czemu numer tel. ze zmiennej $test nie zmienia się w odnośnik?
trueblue
29.01.2019, 14:23:22
Bo wywołujesz kod JS przed wyrenderowaniem DOM, czyli kiedy nie widzi on jeszcze Twojego <div>.
krzysztof_kf
29.01.2019, 14:24:20
Tak myślałem, ale jak to zrobić.
viking
29.01.2019, 14:37:00
https://api.jquery.com/ready/Albo przenieść script na koniec strony.
krzysztof_kf
29.01.2019, 14:51:07
Wszystko jest ok, ale mam taką zmienną, która wyświetla między innymi nr. tel. w larave. Nie chce działać.
{!! $contact->number !!}
markonix
31.03.2019, 20:26:08
Wg mnie znacznie lepszym pomysłem jest tego zrobienie po stronie PHP wyrażeniem regularnym, a potem wyświetlenie tylko w widoku oczywiście w
{!! !!}
lub zrobienie helpera (jest dużo gotowców, najczęstszy case to wyszukiwanie linków i zmiana ich na linki, tu zasada taka sama tylko numery telefonów są mniej jednolite).