2016-06-30 8 views
1

wir versuchen, wenn der String zu finden eine gültige indische Handy-Nummer ist oder nichtregulärer Ausdruck in JavaScript nicht wie erwartet funktioniert

gültige indische Handynummer

  1. beginnt mit 7 or 8 or 9
  2. gefolgt von 9 gleichen oder anderen Nummern

hier ist mein JavaScript für den Abgleich, aber un zum Glück gibt es falsch, selbst wenn Nummer korrekt ist

var mobile_number = $('#number').val(); 
var mobile_regex = new RegExp('/^[789]\d{9}$/'); 
if(mobile_regex.test(mobile_number) == false) { 
    console.log("not valid"); 
} else { 
    console.log("valid"); 
} 
+0

Was für eine richtige Nummer ist? [https://regex101.com/r/yW6vC2/1](https://regex101.com/r/yW6vC2/1) Hier kann ich zum Beispiel sehen, dass 7123456789 eine Übereinstimmung ist. Gibt es andere Symbole an der Vorder-/Rückseite der Nummer? –

+0

'var mobile_regex =/^ [789] \ d {9} $ /;' – anubhava

+0

@MariaDeleva nichts gefolgt von 7,8,9 aber die Länge muss gleich 10 sein – runningmark

Antwort

2

du versuchen

var mobile_number = $('#number').val(); 
    var mobile_regex = new Regex("^[7-9][0-9]{9}$") 
    if(mobile_regex.test(mobile_number) == false) { 
    console.log("not valid"); 
    } else { 
    console.log("valid"); 
    } 
3

Ihr Code zwei Probleme hat. Wenn Sie ein RegExp-Objekt verwenden, benötigen Sie keine / Zeichen, und das Zeichen \ muss mit Escapezeichen versehen werden.

funktionieren würde diese:

var mobile_regex = new RegExp("^[789]\\d{9}"); 

Alternativ das andere Format, wenn Sie verwenden möchten, würde diese Arbeit:

if(!mobile_number.match(/^[789]\d{9}/)) { 
    console.log("not valid"); 
} else { 
    console.log("valid"); 
} 
+0

warum bei der Verwendung von neuer RegExp muss \ maskiert werden. /? –

+0

Es ist nur das '\', das es zu entkommen gilt. Der Grund ist, dass '\ 'ein Escape-Zeichen in JavaScript-Strings ist. –

Verwandte Themen