Nicki: Regulärer Ausdruck für @

Hallo.

ich lass mir mit

function linkcon($string) {
$pattern = '#(^|[^"=]{1})(http://|ftp://|www.)([^\s<>]+)([\s\n<>]|$)#sm';
return preg_replace($pattern,"\1<a href="\2\3" target="_blank">\2\3</a>\4",$string);

alle Links in einem $string ersetzen.

Nun möchte ich auch, das eMail-Adressen erkannt werden , d.h. das @ und dass dann entsprcehend ein mailto:-Link gesetzt wird.

Hat jemand eine Lösung für mich?

Lg, Nicki

  1. Hallo!

    Nun möchte ich auch, das eMail-Adressen erkannt werden , d.h. das @ und dass dann entsprcehend ein mailto:-Link gesetzt wird.

    $string = preg_replace('/([_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[.a-zA_Z0-9-]+.([a-zA-Z]{2,4}))/', '<a href="mailto:$1">$1</a>', $string);

    MfG, André Laugks

    --
    L-Andre @ gmx.de
    1. Hi,

      Nun möchte ich auch, das eMail-Adressen erkannt werden , d.h. das @ und dass dann entsprcehend ein mailto:-Link gesetzt wird.
      $string = preg_replace('/([_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[.a-zA_Z0-9-]+.([a-zA-Z]{2,4}))/', '<a href="mailto:$1">$1</a>', $string);

      Es gibt Umlautdomains.
      Es gibt TLDs mit mehr als 4 Zeichen.
      usw.

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
      1. Hallo!

        $string = preg_replace('/([_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[.a-zA_Z0-9-]+.([a-zA-Z]{2,4}))/', '<a href="mailto:$1">$1</a>', $string);

        Es gibt Umlautdomains.

        öÖüÜäÄ, noch was?

        Es gibt TLDs mit mehr als 4 Zeichen.

        Bis zu 5 Zeichnen?!

        $string = preg_replace('/([_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[.a-zA-ZöÖüÜäÄ0-9-]+.([a-zA-Z]{2,5}))/', '<a href="mailto:$1">$1</a>', $string);

        MfG, André Laugks

        --
        L-Andre @ gmx.de
        1. Hi,

          öÖüÜäÄ, noch was?

          je nach TLD sind auch akzentierte Vokale usw. erlaubt

          Es gibt TLDs mit mehr als 4 Zeichen.
          Bis zu 5 Zeichnen?!

          Die längste, die mir spontan einfällt, hat 6 Zeichen. Mit 5 Zeichen wüßt ich keine.

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
          1. Hallo!

            je nach TLD sind auch akzentierte Vokale usw. erlaubt

            Ohh je, da testet man besser auf Zeichen die nicht vorkommen dürfen.

            MfG, André Laugks

            --
            L-Andre @ gmx.de
            1. Hi,

              je nach TLD sind auch akzentierte Vokale usw. erlaubt
              Ohh je, da testet man besser auf Zeichen die nicht vorkommen dürfen.

              Wobei das ja auch wieder von der TLD abhängt ...

              Es ist IMHO spätestens seit diesen doofen Sonderzeichen-Domains nicht mehr möglich, mit EINEM Regex derartige Dinge zu prüfen.

              cu,
              Andreas

              --
              Warum nennt sich Andreas hier MudGuard?
              Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.