혹시 Listview에 있는 label 에서 url 을 추출하는 방법을 성공하셨던 분이 계신가요?
계시다면 나눠주실수 있는지요.
예) 만약 리스트뷰에 “This url is http://www.google.com google url” 라는 text가 있을 때 링크에 클릭 이벤트를 넣으려고 합니다.
linkify를 통해 웹뷰에서는 가능했는데 리스트뷰에서 하려니 쉽지 않네요.
혹시 Listview에 있는 label 에서 url 을 추출하는 방법을 성공하셨던 분이 계신가요?
계시다면 나눠주실수 있는지요.
예) 만약 리스트뷰에 “This url is http://www.google.com google url” 라는 text가 있을 때 링크에 클릭 이벤트를 넣으려고 합니다.
linkify를 통해 웹뷰에서는 가능했는데 리스트뷰에서 하려니 쉽지 않네요.
이참에 한번 정리했습니다. ^^
@yomybaby 감사합니다. 덕분에 시간을 많이 절약했어요.
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>';
});
}
linkify 좋네요.^^