2017-02-20 29 views

Odpowiedz

9

Aby połączyć inne odpowiedzi w spójną odpowiedź.

Twój pierwszy format wygląda poprawnie, ale twoje wyrażenie regularne nie robi tego, co chcesz.

/^[0-9]*$/ mecze:

^: początek linii

[0-9]*: dowolna cyfra 0 lub więcej razy

$: Koniec linii

Więc regex oddaje linie składające się wyłącznie z cyfr. Aby dopasować na polu, zawierającym po prostu jedną lub więcej cyfr, spróbuj użyć /[0-9]+/ lub /\d+/, które są równoważne, a każdy dopasuje 1 lub więcej cyfr, niezależnie od reszty linii.

W sumie powinno być:

if [fieldname] =~ /\d+/ { 
    # do stuff 
} 
0

potrzebujesz tego regex (i wsporników, jak sądzę):

if ([fieldname] =~ /^[0-9]+$/) 
3

^ utrzymuje pozycję na początek ciąg

$ utrzymuje pozycję na końcu łańcucha

Twój regexp tylko dopasować zdrętwiały er string, a check zawiera liczbę całkowitą, która wymaga usunięcia ^ i $.

3

Najprostszym sposobem jest sprawdzenie \d

if [fieldname] =~ /\d+/ { 
    ... 
}