Listview의 link 추출방법 성공하신 분 계신가요?

혹시 Listview에 있는 label 에서 url 을 추출하는 방법을 성공하셨던 분이 계신가요?
계시다면 나눠주실수 있는지요.

예) 만약 리스트뷰에 “This url is http://www.google.com google url” 라는 text가 있을 때 링크에 클릭 이벤트를 넣으려고 합니다.

linkify를 통해 웹뷰에서는 가능했는데 리스트뷰에서 하려니 쉽지 않네요.

이참에 한번 정리했습니다. ^^

screenshot

2개의 좋아요

@yomybaby 감사합니다. 덕분에 시간을 많이 절약했어요. :smile:
User 가 Comment를 남겼을 때의 경우 다양한 링크를 방식에 대응하기 위해 regex를 입혔더니 anchor tag를 남기지 않아도 링크를 찾아줘서 더 좋네요. 공유합니다.

var html2as = require('nl.fokkezb.html2as');

function onClickLink(e){
  alert(e.url);
}

var contents = [
  'Here is Korean Community www.tidev.kr url'
];

var items = [];
_.each(contents,function(c){

  var attStr;
  html2as(linkify(c), function(err, as){
    if(!err){
      attStr = as;
    }
  });

  items.push({
    template : 'myItem',
    content : {
      attributedString : attStr
    }
  })
});
$.section.items = items; 


function linkify(text) {
    var urlRegex = /((?:(http|https|Http|Https|rtsp|Rtsp):\/\/(?:(?:[a-zA-Z0-9\$\-\_\.\+\!\*\'\(\)\,\;\?\&\=]|(?:\%[a-fA-F0-9]{2})){1,64}(?:\:(?:[a-zA-Z0-9\$\-\_\.\+\!\*\'\(\)\,\;\?\&\=]|(?:\%[a-fA-F0-9]{2})){1,25})?\@)?)?((?:(?:[a-zA-Z0-9][a-zA-Z0-9\-]{0,64}\.)+(?:(?:aero|arpa|asia|a[cdefgilmnoqrstuwxz])|(?:biz|b[abdefghijmnorstvwyz])|(?:cat|com|coop|c[acdfghiklmnoruvxyz])|d[ejkmoz]|(?:edu|e[cegrstu])|f[ijkmor]|(?:gov|g[abdefghilmnpqrstuwy])|h[kmnrtu]|(?:info|int|i[delmnoqrst])|(?:jobs|j[emop])|k[eghimnrwyz]|l[abcikrstuvy]|(?:mil|mobi|museum|m[acdghklmnopqrstuvwxyz])|(?:name|net|n[acefgilopruz])|(?:org|om)|(?:pro|p[aefghklmnrstwy])|qa|r[eouw]|s[abcdeghijklmnortuvyz]|(?:tel|travel|t[cdfghjklmnoprtvwz])|u[agkmsyz]|v[aceginu]|w[fs]|y[etu]|z[amw]))|(?:(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9])\.(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0)\.(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0)\.(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}|[1-9][0-9]|[0-9])))(?:\:\d{1,5})?)(\/(?:(?:[a-zA-Z0-9\;\/\?\:\@\&\=\#\~\-\.\+\!\*\'\(\)\,\_])|(?:\%[a-fA-F0-9]{2}))*)?(?:\b|$)/gi;;
    return text.replace(urlRegex, function(url) {
        return '<a href="' + url + '">' + url + '</a>';
    });

}
2개의 좋아요

linkify 좋네요.^^