2017-12-28 6 views
-2

Ich löse jetzt ein seltsames Problem. Ich teste eine Zeichenfolge mit Regexp und es gibt false zurück, obwohl es True zurückgeben sollte. Ich implementiere es in Javascript. Ich habe diese FunktionJavaScript RegExp-Test gibt den falschen Wert zurück

function isPhoneNumberValid(phoneNumber) { 
    return /^\+\d{12}$/.test(phoneNumber); 
} 

phoneNumber ist eine Variable im Format von + und 12 Zahlen nach (421.123.123.123 zum Beispiel). Ich habe mit verschiedenen Versionen von Regexp wie /^\+[0-9]{12}$/ gespielt.

Nach Seiten wie https://www.regextester.com/21 mein Regexp sollte für das Format arbeiten, das ich will, aber es gibt immer noch falsch. Als ich versuchte, diese Regexp /^\+[0-9]/ zu testen, es wahr zurückgegeben, wenn nur +3 geschrieben wurde, denke ich, das Problem ist mit den Zahlen zählen?

Parameter phoneNumber in der Funktion erhalten ist richtig, so dass ich glaube nicht, der Fehler ist da. Auch keine Kombination von Modifikatoren half. Hier

ist ein Protokoll dieser Funktion

function isPhoneNumberValid(phoneNumber) { 
    console.log('ph:'+phoneNumber); 
    console.log(/^\+\d{12}$/.test(phoneNumber)); 
} 

enter image description here

Um Ihnen einen besseren Einblick Ich habe einen Eingabetyp Text mit Klasse .phoneNumber, dann habe ich Jquery Funktion keyup Ereignis zu beobachten, es sieht aus wie dies

Andere Funktion, die Sie bereits oben gesehen haben. Ich habe versucht, Werte in String() auch zu verpacken.

Ich versuche zu klären, warum Live-Beispiel in Online-Umgebung ist nicht gut, da ich weiß, dass dieser Code dort funktioniert, wie ich bereits zuvor erwähnt. Die Frage zielt eher darauf ab, was möglicherweise dazu führen könnte, da die exakt gleiche Kopie in Codepen funktioniert, aber in meinem Projekt nicht funktioniert.

+0

/^\+{'min'12}$/.test(phoneNumber) Ersetzen Sie min mit dem Wert, den Sie als minimale String-Länge zulassen möchten –

+0

Ihre Regex entspricht exakt 12 Ziffern, @DeepakKumarTP ' s Lösung sollte perfekt sein !!! –

+1

http://jsbin.com/gixicavase/1/edit?js,console - Ich kann das Problem nicht reproduzieren. – Quentin

Antwort

0

Das Problem war mit Latte Template Engine. Es musste

<script n:syntax="double"></script> 

funktionieren.

Verwandte Themen