Ergebnis 1 bis 7 von 7
Like Tree1Likes
  • 1 Post By kkapsner

Thema: Text am Anfang eines Strings vergleichen

  1. #1
    jeffglennfox ist offline Eroberer
    registriert
    08-08-2008
    Beiträge
    56

    Text am Anfang eines Strings vergleichen

    Hallo,

    ich möchte anhand einer eingebeben Telefonnummer erkennen, ob es sich um eine Mobilfunknummer handelt um dann entsprechende Zusatzoption anzubieten. Diese sollen durch einen sich öffenden DIV-Container angezeigt werden, sowie die Nummer als Mobilfunknummer erkannt wurde. Das Script sieht derzeit so aus:

    Code:
    function checkMobilePhone(id) {
    
    if (document.getElementById(id).value.length < 5) {
    
    var value = document.getElementById(id).value;
    
    var country = document.getElementById(id+'-country');
    
    country = country.options[country.selectedIndex].value;
    
    switch (country) {
    
    case 'BE': var prefix = ['046','047','048','049']; break;
    
    case 'CH': prefix = ['075','076','077','078','079']; break;
    
    case 'DE': prefix = ['0151','0152','0157','0159','0160','0162','0163','0170','0171','0172','0173','0174','0175','0176','0177','0178','0179']; break;
    
    case 'DK': prefix = ['020','022','0251','0252','0253','0254','040','0601','0606','721','722','06091','06092','06093','06094','06095','06096']; break;
    
    case 'FR': prefix = ['06','07']; break;
    
    case 'GB': prefix = ['071','072','073','074','075','07624']; break;
    
    case 'IT': prefix = ['32','33','34','360','361','362','363','364','365','366','367','368','38','90','391','392','393'];
    
    case 'LI': prefix =  ['05','06','07']; break;
    
    case 'LU': prefix = ['621','628','661','668','691','698']; break;
    
    case 'NL': 
    
    case 'AT': prefix = ['06'];  break;} 
    
    if (prefix.indexOf(value) === 0) {
       
    document.getElementById(id+'-additional-contact').style.display = 'block';
    
    } else { document.getElementById(id+'-additional-contact').style.display = 'none'; }
    
    }
    
    }
    Das Problem ist es, dass länderspezifisch die Vorwahlen nicht mal innerhalb eines Landes die gleiche Anzahl von Zeichen haben. Ich möchte aber erreichen, dass der DIV-Container geöffnet bleibt, wenn eine Mobilfunknummer erkannt wurde und sich nicht bei Eingabe weiterer Zeichen wieder schließt.

    Über weitere Hilfe zu einem Lösungsansatz würde ich mich sehr freuen.

    Gruss von Markus
    Geändert von jeffglennfox (23-12-2019 um 10:56 Uhr)

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.698

    AW: Text am Anfang eines Strings vergleichen

    Du kannst mit https://developer.mozilla.org/en-US/...cts/Array/some durch alle Einträge in prefix durchiterieren und dann mit https://developer.mozilla.org/en-US/...ing/startsWith (oder value.substr(0, entry.length) === entry) prüfen, ob das mit etwas anfangt:

    Code:
    if (prefix.some(function(entry){return value.startsWith(entry);})) {
    - ungetestet.

    PS: ich würde value am Anfang noch etwas aufräumen. Das Ganze soll ja auch angezeigt werden, wenn da irgendwo z.B. ein Leerzeichen drin ist.

  3. #3
    jeffglennfox ist offline Eroberer
    registriert
    08-08-2008
    Beiträge
    56

    AW: Text am Anfang eines Strings vergleichen

    Ich habe Deinen Vorschlag getestet und damit funktioniert es wie anvisiert. Vielen Dank !

    Aufgrund Deines Hinweises habe ich unterhalb der dritten Zeile noch das ergänzt:

    Code:
    value = value.replace(/[/\-. ]/g,"");
    so dass Leer- und telefonnummerntypische Trennzeichen gefiltert werden.

    Ich wünsche schon mal ein schönes Weihnachtsfest !

    Gruss von Markus
    Geändert von jeffglennfox (23-12-2019 um 17:38 Uhr)

  4. #4
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.721

    AW: Text am Anfang eines Strings vergleichen

    Kann das mehr als das gute alte indexOf? In der Doku ist mir kein Vorteil aufgefallen, der ein neues Kommando für die selbe Funktion rechtfertigen würde.
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

  5. #5
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.698

    AW: Text am Anfang eines Strings vergleichen

    startsWith ist schneller (und kann weniger, da es ja nur am Anfang sucht) - v.a. wenn der Text, in dem gesucht werden soll, sehr lang ist.
    mikdoe likes this.

  6. #6
    Avatar von cartny36
    cartny36 ist offline Jungspund
    registriert
    16-09-2016
    Beiträge
    15

    AW: Text am Anfang eines Strings vergleichen

    Wird das nicht im Rahmen der neuen Verordnungen oder Drohungen der EU hinfällig?
    Oder gehört das in die Sparte vorher erlauben lassen?

  7. #7
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.721

    AW: Text am Anfang eines Strings vergleichen

    Zitat Zitat von cartny36 Beitrag anzeigen
    Wird das nicht im Rahmen der neuen Verordnungen oder Drohungen der EU hinfällig?
    Was genau meinst du?
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png
    Sorry wenn ich manchmal ohne Hallo und nur klein schreibe! Dann bin ich nicht unfreundlich sondern mit nervigem kleinem Touch Tablet zugange

Ähnliche Themen

  1. Wochentag anhand eines Strings ermitteln
    Von GrafCaptcha im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 23-08-2011, 16:27
  2. am Anfang eines Strings Zeichen einfügen
    Von hotchili im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 04-01-2007, 21:50
  3. checken ob XXX teil eines strings ist
    Von Kurt Cobain im Forum Serverseitige Programmierung
    Antworten: 8
    Letzter Beitrag: 31-10-2006, 19:37
  4. [php] den ersten satz eines strings
    Von antiheld2000 im Forum Serverseitige Programmierung
    Antworten: 5
    Letzter Beitrag: 13-02-2004, 18:44
  5. Strings vergleichen
    Von Dyonisus im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 29-01-2002, 12:53

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •