2014-09-21 3 views
0

Я пытаюсь написать usercript для игры, в которую я играю. Он использует этот кусок HTML кода:JS: как найти определенную строку, а затем извлечь целое число?

<td valign="center"> 
     <b>ten-leaf clover</b> 
     (4 left in stock for today) 
    </td> 

Это картина того, что мы говорим о:

enter image description here

Скрипт должен искать строку, содержащую слова «оставили на складе на сегодняшний день ", затем найдите целое число внутри этой строки. («4» не является постоянным, он меняется каждый день.) Наконец, я хотел бы сохранить это целое число как переменную, поэтому я могу заменить «1» в поле ввода. Как это:

var clover = EnterCodeHere 
    $("input.text[name='quantity']").val(clover); 

ответ

0

Вы можете использовали регулярное выражение, как так:

var textToSearch = $("td").innerHtml(); //You'll need a better selector than this. better to use a class or id 
var clover = parseInt(textToSearch.match(/\d+\s*left in stock for today/)[0].match(/\d+/)[0]); 
$("input.text[name='quantity']").val(clover); 

Вы можете проверить массив не является пустым, прежде чем просто принимать первое значение, но если ваш уверен, что это будет должно быть грандиозное.

+0

«Возможно, вы захотите проверить, что массив не пуст, прежде чем принимать первое значение, но если вы уверены, что он будет там, должен быть грандиозным». Извините, я не знаю, что вы имеете в виду. – Panda

+0

Я имел в виду, что функция match вернет массив, и если '\ d \ s * осталось на складе на сегодняшний день ', находится в textToSearch, он будет в массиве, если это не так. Извиняюсь за использование слова «гранд» в этом контексте, я ирландский, и мы обычно используем это слово для обозначения «хорошо» или «хорошо». – ShaneQful

+0

btw Это не работает. Действительно ли это хранит только целое число как «клевер»? Я не знаком с регулярными выражениями, но я посмотрю. – Panda

 Смежные вопросы

  • Нет связанных вопросов^_^