Autor Zpráva
had
Profil *
Ahoj,
prosím vás - používám ajaxový $.post() dotaz, funkce mi vrátí dotaz z databáze, výsledek projevím do divu .html()...vše ok. Ale...potřeboval bych ještě provést analýzu textu, jestli neobsahuje odkaz, případně ten odkaz v html z toho textu udělat... hledal jsem jak to udělat (nejlíp pomocí jquery nebo javascriptu - PHP tam bohužel použít nemůžu, když je to ajax)... nemáte někdo, prosím, buď v jquery nebo v javascriptu napsanou funkci pro převod textu na odkaz? (něco jako je tady: http://diskuse.jakpsatweb.cz/?action=vthread&forum=9&topic=88850)
Díky moc předem.
Dero
Profil
Pokud máte výsledek volání např. v proměnné text, tak pomocí regulárních výrazů můžete detekovat URL a převést je na odkazy. Např. takto:

var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; // regulární výraz
text_s_odkazy = text.replace(exp,"<a href='$1'>$1</a>");

Názory na optimální regulární výraz pro detekci URL se různí, tento nezachytí některé krajní případy. Můžete případně pohledat lepší v některé z knihoven regulárních výrazů, které na internetu jsou, inspirovat se můžete např. zde: http://regexlib.com/Search.aspx?k=URL
had
Profil *
díky, spokojím se s vaším, určitě bude postačovat :-)
had
Profil *
hm... nejde mi to rozjet...čím to může být prosím?

$.post("./ZiskatKonverzaci.php", {id:id}, function(data){
  var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; // regulární výraz
  data = text.replace(exp, "<a href=\'$1\'>$1</a>");
  
  $("#obsah-konverzace").html(data);
  }, "html");
Dero
Profil
To protože řetězec, ve kterém chcete nahrazovat, máte v proměnné data.

Zkuste:

$.post("./ZiskatKonverzaci.php", {id:id}, function(data) {
  var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; // regulární výraz
  data = data.replace(exp, "<a href=\'$1\'>$1</a>");  
  $("#obsah-konverzace").html(data);
}, "html");
had
Profil *
jo jasně... já jsem blbej.. :-) já myslel, že text.replace je název funkce :-) Díky moc, už to funguje, jak má :-)
Dero
Profil
Hlavně, že jsme se dobrali výsledku. :)

Pěkný večer.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0