Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярка между символами (https://javascript.ru/forum/misc/74794-regulyarka-mezhdu-simvolami.html)

vldrsk 08.08.2018 13:45

Регулярка между символами
 
Здравствуйте. Проблема с регуляркой, хоть уже такое где-то читал, но ничего не вышло.
В строке есть такая последовательность символов
<span class="h-card"><span class="VALUE" data-text="Frank Sinatra"


И таких вхождений в строку может быть несколько. Как мне достать значение VALUE не возвращая остальные символы вокруг? пробовал делать

var nov_reg = "class=\"(.*?)\" data-text";


но всё равно возвращает всё вокруг.

Dilettante_Pro 08.08.2018 14:01

Читал-читал - так и не понял ничего.
<span class="h-card"><span class="VALUE" data-text="Frank Sinatra"></span></span>
<script>
  var classes = [];
  document.querySelectorAll('span').forEach(function(el){
          classes.push(el.classList);
   })
   alert(JSON.stringify(classes));
</script>

vldrsk 08.08.2018 14:26

Но это для всех span, а мне нужны конкретные. И хотелось бы через регулярные выражения

Malleys 08.08.2018 15:29

var code = '<span class="h-card"><span class="VALUE" data-text="Frank Sinatra"></span></span>';
var match = code.match(/class="([^"]*)" data-text/);

if(match)
	alert(match[1]);

Dilettante_Pro 08.08.2018 16:57

Так какой признак отбора? Наличие data-text?
<span class="h-card"><span class="VALUE" data-text="Frank Sinatra"><span class="test" data-text="Test "></span></span></span>
<script>
  var classes = [];
  document.querySelectorAll('span[data-text]').forEach(function(el){
          classes.push(el.classList);
   })
   alert(JSON.stringify(classes));
</script>


Часовой пояс GMT +3, время: 22:54.