2013-02-08 14 views
43

chciałem sprawdzić wartość ciągu, jeżeli jest zawierający litera/s [a-zA-Z]Jak sprawdzić w JavaScript że ciąg zawiera znaki alfabetu

Przykład:

var str = '123z56'; 
+1

zinternacjonalizowany wersja tego pytania http://stackoverflow.com/questions/2013451/test-if-string-contains-only-letters-az-%C3%A9-%C3 % BC-% C3% B6-% C3% AA-% C3% A5-% C3% B8-etc –

Odpowiedz

74

Nie jQuery Potrzebne

if (str.match(/[a-z]/i)) { 
    // alphabet letters found 
} 
+1

Jestem początkującym z tymi rzeczami, więc 'match (/ [az]/i)' zwróci 'true 'lub' false'? A po co jest "i" w środku? – user3050478

+0

Flaga 'i' jest dla niewrażliwych na wielkość liter. Funkcja 'match' zwraca tablicę dopasowań. Jeśli nie ma dopasowań, zwraca pustą tablicę, która jest równoważna "false" (o ile nie używasz potrójnych znaków równości). –

7

Ahh, znalazłem odpowiedź sobie:

if (/[a-zA-Z]/.test(num)) { 
    alert('Letter Found') 
} 
4

Nie ma jQuery potrzebne:

var matchedPosition = str.search(/[a-z]/i); 
if(matchedPosition != -1) { 
    alert('found'); 
} 
29

Można użyć wyrażenia regularnego:

/[a-z]/i.test(str); 

i sprawia regex wielkości liter. Można również zrobić:

/[a-z]/.test(str.toLowerCase()); 
+3

To powinna być poprawna odpowiedź. Odpowiedź z @jondavidjohn pasuje tylko do znalezionej litery. tj. 'str.match (/ [a-z]/i)'. Ta odpowiedź faktycznie zwraca wartość true lub false. – samnau

+0

Ja też lubię to rozwiązanie. – bot

+0

Ma to dodatkową zaletę, którą można przetestować w odniesieniu do zmiennej zawierającej również cyfrę; 'var a = 1; /[a-z]/i.test(a) zwraca false'. Natomiast 'a.match' jest niezdefiniowaną metodą. –

Powiązane problemy