Markus: RegExp für Umlaute mit UTF-8 Kodierung

Hallo zusammen,

gleich zum Problem - Bei der Überprüfung von Feldwerten mittels eines regulären Ausdruck in Javascript tritt ein Problem mit Umlauten auf. Folgender Ausdruck funktioniert leider nicht:

var String = "Unterstützung"; // als Beispiel für einen Feldwert
var RegExp = /[1]{2,32}$/;

Die Seite ist UTF-8 kodiert. Die Angabe des Charsets habe ich sowohl im <head>, als auch in jedem <script> Tag notiert. Setze ich die Umlaute bereits UTF8-kodiert in den regulären Audruck, funktioniert dieser auch:

var Exp = /[2]{2,16}$/;

Gibt es hierfür eine elegantere/sichere Lösung? Muss ich unter Umständen auch im <form> Tag explizit das Charset angeben?

Der MIME-Type ist auf text/html mit Standard Charset UTF-8 gesetzt.

Vorab vielen Dank für Eure Unterstützung!

Beste Grüße,
Markus


  1. a-zA-ZäüöÄÜÖß\s- ↩︎

  2. a-zA-Zü\s- ↩︎

  1. var String = "Unterstützung"; // als Beispiel für einen Feldwert
    var RegExp = /[1]{2,32}$/;

    funktionert bei mir Problemlos.

    Die Seite ist UTF-8 kodiert. Die Angabe des Charsets habe ich sowohl im <head>, als auch in jedem <script> Tag notiert. Setze ich die Umlaute bereits UTF8-kodiert in den regulären Audruck, funktioniert dieser auch:

    var Exp = /[2]{2,16}$/;

    Dann ist dein Code nicht utf-8 kodiert. Das ist ein anderes vermutlich iso-8859 oder sowas.

    Struppi.

    --
    Javascript ist toll (Perl auch!)

    1. a-zA-ZäüöÄÜÖß\s- ↩︎

    2. a-zA-Zü\s- ↩︎

    1. var RegExp = /[1]{2,32}$/;
      funktionert bei mir Problemlos.

      Bei ISO-8859-1 Kodierung funktioniert dieser Ausdruck zumindest.

      Dann ist dein Code nicht utf-8 kodiert. Das ist ein anderes vermutlich iso-8859 oder sowas.

      // --------------------------------------------
      // HTML

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
      <meta http-equiv="content-type" content="text/html; charset=utf-8" />
      <meta http-equiv="content-script-type" content="text/javascript" />
      <script type="text/javascript" charset="utf-8" src="/scripts.js"></script>

      // --------------------------------------------
      // Apache 2.2

      DefaultType "text/html"
      AddDefaultCharset "utf-8"

      php_admin_value default_mimetype "text/html"
      php_admin_value default_charset "utf-8"

      Gibt es sonst noch eine Einstellung / Angabe, die ich vergessen habe?

      Vielen Dank für Deinen Hinweis!

      Beste Grüße,
      Markus


      1. a-zA-ZäüöÄÜÖß\s- ↩︎

      1. hi,

        <script type="text/javascript" charset="utf-8" src="/scripts.js"></script>

        Und das Script hast du auch in UTF-8 gespeichert - oder _behauptest_ du das hier nur?
        Und wenn dein Server auch noch eine Angabe zur Kodierung der JS-Ressource macht - sagt er dann auch die Wahrheit?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Und das Script hast du auch in UTF-8 gespeichert - oder _behauptest_ du das hier nur?

          Behauptet habe ich das nicht. Aber vergessen. ;-)
          Da lag der Fehler. Das Problem ist damit gelöst.

          Vielen Dank für Deinen Hinweis!

          Beste Grüße,
          Markus