javascript regex php

2 Cevap php

dize .. kullanıcı adı @ multi-line dize bağlantı .. biz url yerde @ kullanıcı adı bağlantı gerekir edilir bir şey olabilir gibi twitter

    	$text = preg_replace('!(^|\W)@(([a-z0-9]+(\.?[-_a-z0-9]+)*)+)!', '\\1<a href="http://$2.'.site::$domain_only.'">@$2</a>', $text);

Onun benim php versiyonu .. ben nasıl dönüştürebilirsiniz ya da javascript ile aynı kullanabilirsiniz.

2 Cevap

Eğer kodu dönüştürmek neredeyse tek-tek:

text = text.replace(/@+([a-z0-9]+(\.?[-_a-z0-9]+)*){2,255}/g, "<a href='http://$0.".site::$domain_only."'/>$0</a>");
text = text.replace("='http://@", "='http://");

Ve onun değeri ile, örneğin site::$domain_only değiştirmeniz gerekir:

var domain_only = '…';
text = text.replace(/@+([a-z0-9]+(\.?[-_a-z0-9]+)*){2,255}/g, "<a href='http://$0."+domain_only+"'/>$0</a>");
text = text.replace("='http://@", "='http://");

Ama ben daha ziyade bu normal ifadeyi kullanabilirsiniz:

/@+((?:[a-z0-9]+(?:\.?[-_a-z0-9]+)*){2,255})/g

Sonra doğrudan ilk grubun maç kullanabilir ve daha sonra @ kaldırmak gerekmez:

var domain_only = '…';
text = text.replace(/@+((?:[a-z0-9]+(?:\.?[-_a-z0-9]+)*){2,255})/g, "<a href='http://$1."+domain_only+"'/>$1</a>");

Ayrıca sizin gibi, JavaScript String nesnesine istenilen yöntemleri ekleyebilirsiniz

String.prototype.linkuser=function(){
    return this.replace(/[@]+[A-Za-z0-9-_]+/g,function(u){
        return u.link('http://'+u.slice(1).toLowerCase()+'.example.com/');
    });
};

Ve sonra gibi kullanabilirsiniz

// var username = "RT @some0ne this isn't a @twitterUsername";
username.linkuser(); // RT <a href="http://some0ne.example.com/">@some0ne</a> this isn't a <a href="http://twitterUsername.example.com/">@twitterUsername</a>