【问题标题】:JS: how to find a specific string, then extract an integer?JS:如何找到一个特定的字符串,然后提取一个整数?
【发布时间】:2014-09-21 12:42:32
【问题描述】:

我正在尝试为我正在玩的游戏编写用户脚本。它使用了这段 HTML 代码:

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

这是我们正在谈论的图片:

脚本应搜索包含“今天有库存”字样的字符串,然后在该字符串中查找一个整数。 (“4”不是恒定的,它每天都在变化。)最后,我想将此整数存储为变量,这样我就可以替换输入字段中的“1”。像这样:

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

【问题讨论】:

    标签: javascript string variables integer userscripts


    【解决方案1】:

    你可以像这样使用正则表达式:

    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);
    

    您可能想在获取第一个值之前检查数组是否为空,但如果您确信它会存在,那么应该是盛大的。

    【讨论】:

    • "你可能想在取第一个值之前检查数组是否为空,但如果你确信它会在那里,应该是盛大的。"抱歉,我不明白你的意思。
    • 我的意思是 match 函数将返回一个数组,如果 '\d\s*left in stock for today' 在 textToSearch 中,它将在数组中,如果不是,则不会是。很抱歉在这种情况下使用“grand”这个词,我是爱尔兰人,我们通常用这个词来表示好的或好的。
    • 顺便说一句,它不起作用。这实际上只将整数存储为“三叶草”吗?我不熟悉正则表达式,但我会查一下。
    • 对不起,刚刚将代码添加到答案中以将其转换为整数:)
    • 还是不行。我只是用谷歌搜索了正则表达式,并认为这可能也有效,但事实并非如此。 var clover = /\d/.exec($("td").innerHTML()); $("input.text[name='quantity']").val(clover);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 2013-10-13
    • 2015-08-04
    • 2015-04-30
    相关资源
    最近更新 更多