NodeJS Извлечение входного значения из URL - PullRequest
0 голосов
/ 07 января 2019

У меня html хранится в переменной

var html = "<div class="RiP" style="text-align: left;"><div class="clr"></div><input name="extraMP" value="999" type="hidden"><div class="txta dropError">Slide to activate</div><div class="bgSlider"><div class="Slider ui-draggable"></div></div><div class="clr"></div><input name="randomValue" value="randomValue2" type="hidden"></div>"

Я хочу извлечь "randomValue" и "randomValue2".

Может быть, я должен использовать cheerio? Я пытался с этим, но мне было трудно это сделать.

Ответы [ 2 ]

0 голосов
/ 07 января 2019

То, что вы можете сделать, используя cheerio , - это найти последний ввод внутри класса RiP и получить атрибут имени и значения:

var html = `<div class="RiP" style="text-align: left;"><div class="clr"></div><input name="extraMP" value="999" type="hidden"><div class="txta dropError">Slide to activate</div><div class="bgSlider"><div class="Slider ui-draggable"></div></div><div class="clr"></div><input name="randomValue" value="randomValue2" type="hidden"></div>`;

const cheerio = require('cheerio');
const $ = cheerio.load(html);

let input = $('.RiP input').last();
console.log(input.attr('name'));
console.log(input.val());

Результат:

randomValue
randomValue2

Обратите внимание, что не рекомендуется анализировать html с регулярным выражением

0 голосов
/ 07 января 2019

Если вам сложно приветствовать cheerio - вы можете использовать регулярные выражения для получения значений. Для легкого доступа вы можете предоставить атрибут класса для <input>, например:

<input class="className" name="randomValue" value="randomValue2" type="hidden">

Ваше регулярное выражение будет:

const match = html.match(/<input\s*class="className"\s*name="(.+?)"\s*value="(.+?)"/m)
match[1] // randomValue
match[2] // randomValue2

С приветом это будет:

const cheerio = require('cheerio');
const html = `<div class="RiP" style="text-align: left;"><div class="clr"></div><input name="extraMP" value="999" type="hidden"><div class="txta dropError">Slide to activate</div><div class="bgSlider"><div class="Slider ui-draggable"></div></div><div class="clr"></div><input class="myClass" name="randomValue" value="randomValue2" type="hidden"></div>`

const $ = cheerio.load(html);

$('.myClass').val(); // randomValue2
$('.myClass').attr('name'); // randomValue
...