Fehler in Funktion - Abfrage input "Straße" funktioniert nicht.

awnetti

Mitglied
Hallo zusammen,

habe die folgende Funktion zur Abfrage von Telefon im Formular:

Code:
function checkForm(el)
{
  var val = el.value.replace(/[^\.^,\d]/g, '');
  el.value = val;
}

Funktionier einwandfrei!

Habe diese Funktion für die Abfrage von Straße modifiziert, funktioniert aber nicht.

Code:
function checkStr(el){
  var val = el.value.replace(/[^\.^\w]/g, '');
  el.value = val;
}

Soll abfragen: Alles was nicht . und ein beliebiger Buchstabe ist, soll gelöscht werden.

Kann mir jemand sagen was daran falsch ist?

Danke und Gruß
awnetti
 
Hi,

w findet alle alphanumerischen Zeichen sowie den Unterstrich. Wird es negiert, so würde der Punkt
bereits mit herausgefiltert werden. Es würde also folgendes ausreichen:
Code:
var val = el.value.replace(/[^\w]/g, '');
// ODER:
var val = el.value.replace(/[\W]/g, '');
Damit würden allerdings auch alle Leerzeichen und Minuszeichen entfernt werden - was jedoch im
Zeichenvorrat für Strassennamen enthalten sein sollte.

Mein Vorschlag:
Code:
// Von @Sven Mintel
String.prototype.trim = function(strDir){
  switch(strDir){
    case 'r': return this.replace(/\s+$/g, '');
              break;
    case 'l': return this.replace(/^\s+/g, '');
              break;
    default: return this.replace(/(^\s+|\s+$)/g, '');
  }
}

function checkStr(el){
  // Alles entfernen ausser alphanumerische Zeichen, Umlaute, Ziffern, Minus und Leerzeichen
  var val = el.value.trim().replace(/[^A-Za-zäöüÄÖÜ0-9- ]/g, '');
  el.value = val;
}
Das Objekt String wurde noch durch eine Methode zum Entfernen von Leerzeichen am Anfang und
Ende des Strings erweitert (Methode von Sven Mintel).

Vielleicht hilft Dir das weiter.

Ciao
Quaese
 

Neue Beiträge

Zurück