Muszę uzyskać konkretną klasę z JavaScript. Ta klasa to siatka Bootstrap: COL-MD-8

Muszę uzyskać numer, próbuję tego:

$class = $('div').attr('class');
$number = $class.match(/^col-md-./);

Jestem prawdziwym początkującym w REGEX, pomóż mi.

Edytuj: Klasa $ może mieć więcej zajęć: "Col Col-MD-8 Col-offset-MD-8"

3
dmassiani 10 grudzień 2013, 19:25

4 odpowiedzi

Najlepsza odpowiedź

\d+ jako wzór.

'col-md-8'.match(/\d+/)
// => ["8"]
'col-md-8'.match(/\d+/)[0]
// => "8"
  • \d Dopasuj znak cyfry.
  • + Modyfikator powtórzeń: sprawia, że poprzedni wzór pasuje do wielu (1 lub więcej) razy

Aktualizacja Odpowiedź na komentarz:

Korzystanie z grupy przechwytywania:

'other-class-1 col-md-8'.match(/col-md-(\d+)/)[1]
// => "8"
5
falsetru 10 grudzień 2013, 17:00

Używaj po prostu: $ Class.Substr (7)

1
Roman Hocke 10 grudzień 2013, 15:28

Możesz wymieszać odpowiedź falsetti z odpowiedzią, aby zignorować inne klasy i liczby:

cls = 'col-md-8'col-md-8
match = cls.match(/col-md-(\d+)/)
// => ['col-md-8', '8']

Nawity przechwytuje poduszki całkowitego wzoru i przechowywać je w tablicy meczowej. Pierwszym elementem tablicy meczowej jest pełne dopasowane tynki, a pozostałe elementy są indywidualne przechwytywanie.

match[1]
// => "8"

Aby przekonwertować ciąg do liczby całkowitej, możesz użyć operatora UNEL Plus:

+match[1]
// => 8
1
hugomg 10 grudzień 2013, 16:55

Poniższy regex będzie działał jak chcesz

    /class="(.)*col-md-\d*"/g

Oto [przykład]: http://jsfiddle.net/s74Chw8k/13/

0
Ujjal Suttra Dhar 24 grudzień 2014, 09:42