Dectectando URLs & youtube links - Javascript

Words
148
Reading
1 min
Listen
Play
9y

Este script detecta urls y las convierte en enlaces. También detecta los saltos de linea y los espacios. Y además los enlaces de youtube los inserta en un iFrame para que puedan ser visualizados.

This script detects urls and put it as a link. It preserves the original text format, and gets youtube urls into an iFrame to see them like an embed video.

Ya he detectado algunas funciones repetitivas y en breve las estaré corrigiendo, si tambien las detectaron pueden avisarme y nos sirve de práctica.

<script>
    function linkify(text, contexto) {
        $('#previsual').empty();//Vaciando div con id previsual
        
        /*conservar formato*/
        text = text.replace(/\n/g, '
'
);//Saltos de linea text = text.replace(/ /g, ' ');//Espacios en blanco /*Detectando videos de youtube y dailymotion*/ if (text.includes("/watch?v=") || text.includes("youtu.be/") || text.includes("/video/") || text.includes("dai.ly/")) { var find, repl; if (text.includes("/watch?v=")) {//youtube find = /watch[?]v[=]/ig; repl = 'embed/'; } else if (text.includes("youtu.be/")) {//youtube find = '.be'; repl = 'be.com/embed'; } else if (text.includes("/video/")) {//dailymotion find = '/video'; repl = '/embed/video'; } else { //dailymotion find = '.ly'; repl = 'lymotion.com/embed/video'; } var res = text.replace(find, repl); var urlRegex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; return res.replace(urlRegex, function (url) { var cad = '
(Unsupported src)
+ url + '" frameborder="0" allowfullscreen>';//previsual embed video if (contexto == 1) $('#previsual').html(cad); else if (contexto == 2) $('#preVisualMsj').html(cad); return cad }) } else { var urlRegex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; return text.replace(urlRegex, function (url) { return ' + url + '" target="_blank" class="enlace">' + url + ''; }) } } </script>

despues solo se llama la funcion mientras se está escribiendo en el textarea:
Then call the function while still writing:

linkify(string,1)/*el valor dos es para otro textarea de mi proyecto. 1 is to enable previsualizing */

y cuando ya se publicó:
When publication is done:

linkify(string,0)/*El valor 0 es para desactivar la previsualización de los iFrames. 0 to disable previsualization */
Dectectando URLs & youtube links - Javascript | Ecency