zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden Test auf Umlaute

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 05.11.2009, 09:37
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.458
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard Test auf Umlaute

Servus,

wie schaue ich nach, ob der Benutzer Umlaute eingibt ?

In C gibt es die Funktion isalnum(), kein Problem. Dort wird auf die Bereiche 0..9,
und a..Z getestet. Die fehlt leider in JavaScript. Ich könnte das über eine Prüfung
in einer Schleife mit indexOf() auf einen String mit den erlaubten Zeichen lösen, das
wäre aber nicht sehr elegant und lahm.

Gibt es da etwas Besseres ?

Grüße vom geplagten JS-Anwender ...
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 05.11.2009, 10:41
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.016
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Du könntest mit Hilfe von „match()“ und einem entsprechenden regulären Ausdruck deinen String prüfen.
Eine andere Möglichkeit fällt mir spontan auch nicht ein.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 05.11.2009, 10:48
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.458
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Merci.

Im Moment habe ich es so (erscheint mir aber recht aufwendig):

(jQuery, an die Klasse chkchr wird die Funktion angebändelt, usrcmt ist
ein Bereich wo Hilfetexte angezeigt werden)

Code:
  $('.chkchr').bind( 'keyup', function( e) {
        console.log( "chkchr: " + e.target.id + ", key " + this.value);
        valchr = " _-abcdefghijklmnopqrstuvwxyz0123456789";
        for ( i=0; i<this.value.length; i++) {
            c = this.value.charAt(i).toLowerCase();
            if ( valchr.indexOf( c) == -1){
                console.log( "* ill: " + c);
                $('#usrcmt').html( "Sie haben ein '" + c + "' eingegeben, "
                  + "dieses Zeichen ist hier nicht zulässig. Bitte "
                  + "verwenden Sie nur die Ziffern von 0 bis 9, die "
                  + "Sonderzeichen '_' und '-' und die Buchstaben "
                  + "von a bis z bzw A bis Z");
                return;
            }
        }
        $('#usrcmt').html('');
    });
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
  #4 (permalink)  
Alt 05.11.2009, 11:37
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Du solltest dich mal mit regulären Ausdrücken beschäftigen. Das ist ein nützliches und mächtiges Werkzeug.
SELFHTML: JavaScript / Objektreferenz / RegExp
SELFHTML: Perl / Perl-Sprachelemente / Reguläre Ausdrücke

Es gibt dort für die verschiedenen Zeichengruppen jeweils Suchmuster. z.b. dürfte \w deiner Suche entsprechen. Aber du kannst natürlich auch nach 0-9 und a-z suchen.

[EDIT]Ach und du solltest auf jeden Fall Variabeln lokal halten. so wie du es jetzt machst sind alle Variabeln global und globale Schleifenvariabeln sollten dir auch als C Programmierer ein greuel sein.
Mit Zitat antworten
  #5 (permalink)  
Alt 05.11.2009, 11:45
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.458
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Wieso sind die "global" ? Sie sind innerhalb einer Funktion deklariert.

Ok, dann mal mit den Regulären ... *ächz*
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
  #6 (permalink)  
Alt 05.11.2009, 11:50
Benutzerbild von Pablo
4 8 15 16 23 42
XHTMLforum-Kenner
 
Registriert seit: 31.05.2004
Beiträge: 1.772
Pablo sorgt für eine eindrucksvolle AtmosphärePablo sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von Scheppertreiber Beitrag anzeigen
Wieso sind die "global" ? Sie sind innerhalb einer Funktion deklariert.

Ok, dann mal mit den Regulären ... *ächz*
Zitat:
Es gibt globale Variablen und lokale Variablen. Eine lokale Variable erhalten Sie durch die Deklaration der Variablen mit var innerhalb einer Funktion. Im obigen Beispiel sind die Variablen SinnDesLebens, i, x und Satzteil innerhalb der Funktion SchreibeQuadrate() als lokale Variablen notiert. Diese Variablen sind deshalb nur innerhalb dieser Funktion gültig. Man spricht in diesem Zusammenhang auch von der "Lebensdauer" von Variablen. Parameter, die einer Funktion übergeben werden, werden ebenfalls als lokale Variablen behandelt.
Die Variable Hinweis ist dagegen eine global Variable. Sie ist im gesamten Dokument gültig und steht jederzeit zur Verfügung. Wenn Sie innerhalb von Funktionen Variablen ohne das Schlüsselwort var deklarieren, dann sind diese Variablen global.
SELFHTML: JavaScript / Sprachelemente / Variablen und Werte unter Erläuterungen

Gruß,
Pablo
__________________
Go Opera!
… oder Chrome. Auch cool.
Mit Zitat antworten
  #7 (permalink)  
Alt 05.11.2009, 12:05
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Scheppertreiber Beitrag anzeigen
Wieso sind die "global" ? Sie sind innerhalb einer Funktion deklariert.
Ja und? Das ist so eine komische Sache aus PHP. Du solltest Variabeln immer mit var deklarieren, damit begrenzt du auch den Gültigkeitsbereich auf die Funktion.

Zitat:
Zitat von Scheppertreiber Beitrag anzeigen
Ok, dann mal mit den Regulären ... *ächz*
Das was du willst sollte dem entsprechen:
Code:
String.prototype.isalnum = function() {
	return !this.match(/[^\w\-]/);
}
var c;

c = 'ax_-1';
alert(c.isalnum()) 
c = 'ax_-1ö';
alert(c.isalnum())
Mit Zitat antworten
  #8 (permalink)  
Alt 05.11.2009, 12:06
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.458
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Danke, habe ich auch gerade gelesen.
Wie nennt man so etwas ? "broken by design" ...

Ich bin in meinem JS-Code bei Zeile 1200, insgesamt sind es knapp 1500.
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
  #9 (permalink)  
Alt 05.11.2009, 12:10
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.458
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Zitat:
Zitat von protonenbeschleuniger Beitrag anzeigen
Ja und? Das ist so eine komische Sache aus PHP. Du solltest Variabeln immer mit var deklarieren, damit begrenzt du auch den Gültigkeitsbereich auf die Funktion.


Das was du willst sollte dem entsprechen:
Code:
String.prototype.isalnum = function() {
	return !this.match(/[^\w\-]/);
}
var c;

c = 'ax_-1';
alert(c.isalnum()) 
c = 'ax_-1ö';
alert(c.isalnum())
Merci, werde ich probieren ...
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 05.11.2009, 12:51
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.458
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Das mit dem Gültigkeitsbereich der Variablen ist ja wirklich so. Ich fasse es nicht.
Eine (unnötige) Fehlerquelle erster Güte.

Wollte man damit den Skript-Kiddies Fehlermeldungen ersparen ?
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
DIV Box (Sidebar) in bereits fertiges Design einfügen? Daniel386 CSS 10 21.06.2011 23:58
Setzen von Minimalhöhe bei Kontentbox Christophe CSS 4 17.06.2009 09:24
Problem mit div und Höhe deep4 CSS 2 13.11.2007 21:03
overflow: auto und background-attachment Probleme Veritas CSS 1 05.02.2006 17:49
3 Spalten Layout - Div Höhe aneinander angleichen Simsi CSS 3 01.01.2006 19:04


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:46 Uhr.