Как достать число из переменной?

340
13 ноября 2017, 20:51

Нужно извлечь число из класса у элемента для дальнейшей работы с ним. Класс извлек, но почему число то не извлекается, почему parseInt не выполняет задачу?

class_cal = $('#cal-view-2').attr('class').split(' ')[0]; 
console.log(class_cal); 
console.log(parseInt(class_cal));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script> 
<div id="cal-view-2" class="cal-6 cal clearfix Drupal-availabilityCalendar-View-init-processed"> 
  <div>

Answer 1

Вам нужно выделить число из строки:

  • регулярным выражением: .match(/\d+/)[0]
  • разделением в массив: .split('-')[1]
  • любым другим способом

class_cal = $('#cal-view-2').attr('class').split(' ')[0]; 
console.log(class_cal); 
console.log(parseInt(class_cal.match(/\d+/)[0]));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script> 
<div id="cal-view-2" class="cal-6 cal clearfix Drupal-availabilityCalendar-View-init-processed"> 
  <div>

Answer 2

Лучше всего не полагаться на то, что класс, из которого выделяется число будет первым в массиве ([0]), а получить всю строку классов (document.getElementById('id').classList.value) и выделить число по шаблону /(?:^|\s+)cal-view-(\d+)(?:\s+|$)/. Это гарантирует что выделяемое число не будет числом другого класса

const match = /(?:^|\s+)cal-view-(\d+)(?:\s+|$)/.exec(class_cal)
console.log(parseInt(match[1]))
READ ALSO
Список всех фоновых запросов

Список всех фоновых запросов

Задача: нужно с помощью JS получить список всех фоновых запросов (ajax) особенно которые генерируют плагиныКак с помощью js/jquery это сделать?

245
CSS - скрыть элемент в конце анимации

CSS - скрыть элемент в конце анимации

Как сделать так, чтобы в конце анимации элемент был убран? Это не работает:

264
Выровнять блоки

Выровнять блоки

Использую bootstrap 3 и стандартные карточки (эскизы)Фиддл тут

242