2017-01-12 6 views
0

Ich validiere verschiedene Eingabedatenparameter.Überprüfen Sie die Zeichenfolge mit .match()

Ich versuche herauszufinden. Match und RegExp.

Dies scheint zu bestätigen, ob ein String nur 0-9 Zeichen enthält:

!str.match(/^[0-9]+$/) 

Und schlägt fehl, wenn der String etwas anderes enthält.

Ist das richtig verstanden, oder überprüft es einfach, ob die Zeichenfolge 0-9 Zeichen enthält?

So kann ich tun:

if (!string.match(/^[0-9]+$/)) 
    console.log('fails as the string contains other characters than 0-9'); 
+0

Warum führst du nicht einfach den Code aus und siehst, was er tut? Oder lesen Sie ein Regexp-Tutorial? Oder fügen Sie es in einen Regexp-Checker wie regex101.com ein, der Ihnen eine englisch-ähnliche Beschreibung dessen gibt, was es bedeutet? –

Antwort

0

Die match() Methode ruft die Spiele, wenn eine Zeichenfolge mit einem regulären Ausdruck übereinstimmen.

Ihr regulärer Ausdruck ist /^[0-9]+$/ die

^ bedeutet: behauptet Position am Anfang der Zeichenfolge

[0-9]: ein einzelnes Zeichen im Bereich zwischen 0 (ASCII 48) und 9 (ASCII 57)

+: Quantifizierer - Spiele zwischen einem und beliebig oft, so oft wie möglich

$: aktiviert die Position am Ende der Zeichenfolge

Das folgende Code-Snippet verwendet die test() -Methode zum Testen auf eine Übereinstimmung in einer Zeichenfolge.

var regex = /^[0-9]+$/; 
 

 
console.log(regex.test("0123")); //true only 0-9 
 
console.log(regex.test("1")); //true only 0-9 
 
console.log(regex.test("")); //false Not at least 1 character 0-9 
 
console.log(regex.test("a0123")); //false contains a letter 
 
console.log(regex.test("abc")); //false contains multiple letters

+0

Ihre Beschreibung beschreibt 'match', dann verwenden Ihre Beispiele' test'. –

1

Persönlich würde ich etwas wie folgt verwenden:

string='188867899'; 
 
var regex = /\D/; //any non-digit character 
 
if (regex.test(string)) //if string contains any non-digit char 
 
console.log('String 1 contains non-digit chars'); 
 

 
string2='1888y67899'; 
 
var regex = /\D/; //any non-digit character 
 
if (regex.test(string2)) //if string contains any non-digit char 
 
console.log('String 2 contains non-digit chars');

aber, das ist Sache der Wahl (Geschmack, was auch immer), mehr oder weniger ...

Verwandte Themen