Witam , przerabiam właśnie książkę "PHP5, Apache i MySQL od podstaw" i jestem w ostatnim rozdziale.
Podczas przerabiania tego rozdziału pojawiły się dwa problemy.

1.Chciałbym dodać do forum które jest tematem ostatniego rozdziału , możliwość zamieniania adresu email na odpowiednie łącze np. :

joomla@gmail.com

na łącze

<a href="mailto:joomla@gmail.com" title="Kliknij żeby wysłac emaila">joomla@gmail.com</a>

Niestety próbowałem już paru sposobów zdefiniowania wyrażenia regularnego ale żaden z nich nie działał poprawnie. Myślę że główny problem nie leży w samym wyrażeniu regularnym ale w kwantyfikatorach tego wyrażenia.

2. Drugi problem jest taki że chciałem dodać do możliwości dodawania nowego postu listę bbcodów. Po prostu wylistowaną listą nienumerowaną listę bbcodów jak na przykład :
*.\[b\]\[/b\]
*.\[url\]\[/url\]

i tak dalej

Po kliknięciu na taki bbcode powinien się on znaleźć w polu textarea w którym się wpisuje treść postu. Niestety działa to nie do końca. Mianowicie po załadowaniu strony z wpisywaniem nowego posta jak kliknie się na bbcode wstawia się on do textarea bez problemu jednak jak już coś zacznę pisać w polu textarea to kliknięcie na bbcode nic nie daje, w ogóle się nie wstawia do textarea.

Poniżej wstawiam kod JQuery który posłużył mi do zaimplementowania tej funkcjonalności :

  1.  
  2. $(function(){
  3. $('#tag_b').click(function(){
  4. $('#sigF').html($('#sigF').text()+'');
  5. });
  6. $('#tag_i').click(function(){
  7. $('#sigF').text($('#sigF').text()+'');
  8. });
  9. $('#tag_u').click(function(){
  10. $('#sigF').text($('#sigF').text()+'');
  11. });
  12. $('#tag_img').click(function(){
  13. $('#sigF').text($('#sigF').text()+'[img=][/img]');
  14. });
  15. $('#tag_color').click(function(){
  16. $('#sigF').text($('#sigF').text()+'[color=][/color]');
  17. });
  18. $('#tag_url1').click(function(){
  19. $('#sigF').text($('#sigF').text()+'http://');
  20. });
  21. $('#tag_url2').click(function(){
  22. $('#sigF').text($('#sigF').text()+'');
  23. });
  24. $('#tag_quote1').click(function(){
  25. $('#sigF').text($('#sigF').text()+'<!--quoteo--><div class='quotetop'>Cytat</div><div class='quotemain'><!--quotec--><!--QuoteEnd--></div><!--QuoteEEnd-->');
  26. });
  27. $('#tag_quote2').click(function(){
  28. $('#sigF').text($('#sigF').text()+'<!--quoteo--><div class='quotetop'>Cytat</div><div class='quotemain'><!--quotec--><!--QuoteEnd--></div><!--QuoteEEnd-->');
  29. });
  30.  
  31. })


Prosił bym o pomoc w rozwiązaniu tych problemów i z góry dziękuje.

Mogę dodać że próbowałem już wyrażeń regularnych takich jak :

|^([a-zA-Z0-9-_\.])+@([a-zA-Z0-9-_\.])+\.[a-zA-z0-9]{2,4}$|

oraz

|[\w\-]+(\.[\w\-]+)*@[\w\-]+(\.[\w\-]+)+|

Żadne z nich nie działało poprawnie. To znaczy zamieniało email na linka ale nie tak jak miało to robić. Na przykład tworzyło tylko część linka i powielało go parę razy.

Z tego co myślę to wyrażenia regularne są w porządku oprócz kwantyfikatorów.

Prosił bym o pomoc w tym.