JavaScript - Regulär Expression

Bild Tipps & Tricks zu den Dynamics CRM Versionen
Hier bitte keine Fragen stellen, sondern nur bereits vorhandene Tricks veröffentlichen.
Forumsregeln
Impressum • Community-Knigge • Nutzungsbedingungen • Datenschutzrichtlinie
Hier bitte keine Fragen stellen, sondern nur bereits vorhandene Tricks veröffentlichen.

JavaScript - Regulär Expression

Beitragvon Michael Sulz » 6. Februar 2010 12:21

Da dies in vielen Beiträgen immer wieder gefragt wurde, habe ich hier einmal ein kleines Beispiel geschrieben, wie die Telefonnummer eines Feldes mit Regulär Expressions überprüft werden kann.

Diese Expression prüft auf Ländervorwahl mit + und 1-4 Stellen, danach ein Leerzeichen und dann ein beliebiges der folgenden Zeichen: 0123456789() und das Leerzeichen
\+[0-9]{1,4} ?(0?[ \(\)0-9]{1,})$

Im OnLoad des Formulars wird dafĂĽr diese Funktion hinterlegt.
Code: Alles auswählen
tsCheckPhone = function(tel)
{
  var regEx = /^\+[0-9]{1,4} (0?[ \(\)0-9]{1,})$/;
  return tel.match(regEx);
}

Die Regulär Expression kann dabei natürlich gegen jede gewünschte, gültige expression ausgetauscht werden, je nachdem, was geprüft werden soll.

Im OnSave des Formulars wird dann geprĂĽft, ob das Feld richtig gefĂĽllt ist und wenn nicht, wird das speichern verhindert.
Code: Alles auswählen
if(crmForm.all.telephone1)
{
   if(crmForm.all.telephone1.DataValue != null)
   {
      var telephonenumber = tsCheckPhone(crmForm.all.telephone1.DataValue);

      if(!telephonenumber)
      {
         alert('UngĂĽltige Nummer, bitte verwenden Sie +49 (251)123456');
         crmForm.all.telephone1.SetFocus();
         // Durch diese 2 Befehle wird der Datensatz nicht gespeichert!!!
         event.returnValue=false;
         return false;   
      }
   }
}

Damit der Benutzer nicht erst beim speichern darauf hingewiesen wird, das die Telefonnummer nicht korrekt ist, sollte diese natürlich auch zusätzlich im OnChange des Feldes überprüft werden:
Code: Alles auswählen
if(crmForm.all.telephone1.DataValue != null)
{
   var telephonenumber = tsCheckPhone(crmForm.all.telephone1.DataValue);

   if(!telephonenumber)
   {
     alert('UngĂĽltige Nummer, bitte verwenden Sie +49 (251) 123456');
     crmForm.all.telephone1.SetFocus();
   }
}
GruĂź, Michael Sulz
Mein Blog
Xing LinkedIn Facebook Twitter

Frage beantwortet? Schreibe bitte [Gelöst] vor den Titel des ersten Beitrags.
Bitte erst suchen, dann fragen. Bitte beachte den kleinen Community-Knigge.
Kein Support per PN, Mail, IM oder Telefon! DafĂĽr ist dieses Forum da.

Wie man Fragen richtig stellt
Benutzeravatar
Michael Sulz
Microsoft Partner
Microsoft Partner
 
Beiträge: 4939
Registriert: 9. September 2009 17:41
Wohnort: MĂĽnster
Realer Name: Michael Sulz
Arbeitsort: MĂĽnster
Bezug zu Microsoft Dynamics: Microsoft Partner
Microsoft Dynamics Produkt: Microsoft Dynamics CRM

Re: JavaScript - Regulär Expression

Beitragvon nice2skate » 14. Februar 2010 13:27

:-D

Vielen Dank - prima Skript.

Ich habe den regulären Ausdruck für folgende Option noch geschrieben (falls jemand diese benötigt):

+49 7351 7777-1111
oder (mit max. Anzahl der Zeichen)
+49 1234567 1234567-1234567

Hintergrund: nun kann man noch Durchwahlnummern genau formatiert vorgeben.

Die regEx im obigen Skript mit folgendem ersetzen:

var regEx = /^\+[0-9]{1,4} [0-9]{1,7} [0-9]{1,7}\-?[0-9]{1,7}$/;

NatĂĽrlich kann man fĂĽr Buchstaben-Nummern (oft in USA gebraucht) auch diese Formatierung noch erweitern.
nice2skate
 
Beiträge: 2
Registriert: 14. Februar 2010 11:20
Realer Name: Kolja Tönges
Arbeitsort: Biberach a.d.Riss
Bezug zu Microsoft Dynamics: End-Anwender
Microsoft Dynamics Produkt: Microsoft Dynamics CRM
Microsoft Dynamics Version: 4.0


ZurĂĽck zu CRM Tipps & Tricks

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast