2016-06-22 5 views
2

Ich arbeite derzeit innerhalb einer AngularJS-Direktive und in der Vorlage versuche ich zu überprüfen, ob eine Instanzvariable des Controllers eine bestimmte Art von Zeichenfolge ist.Javascript Regex für String mit einer Nummer in ihm

Insbesondere kann diese Zeichenfolge alles sein, solange sie eine 8-stellige Zahl enthält.
Passing Beispiele: "gdbfgihfb 88827367 dfgfdg", "12345678", ".12345678" Die Zahl muss eine solide Zeichenfolge von 8 Zahlen mit nichts dazwischen sein.

Ich habe dies versucht:

$ctrl.var == /[0-9]{8}/ 

Aber es aus irgendeinem Grund nicht funktioniert. Wie konstruiere ich eine Regex, um dies zu tun?

Dank

+0

Hinzufügen "von Anfang bis Ende" '/^[0-9] {8} $ /'. '/^\ d {8} $ /' sieht auch gut aus. –

+0

Warum kann es nicht funktionieren? Hast du ein paar Protokolle? –

+0

Stellen Sie mehr Code zur Verfügung. Die Regex scheint in Ordnung zu sein. – iplus26

Antwort

1

-Code Siehe:

var first = "gdbfgihfb 88827367 dfgfdg"; 
var second = "12345678"; 
var third = ".12345678"; 

var reg = new RegExp('[0-9]{8}'); 

console.log(first.match(reg)); 
console.log(second.match(reg)); 
console.log(third.match(reg)); 

Ausgang:

[ '88827367', index: 10, input: 'gdbfgihfb 88827367 dfgfdg' ] 
[ '12345678', index: 0, input: '12345678' ] 
[ '12345678', index: 1, input: '.12345678' ]