推荐关注
› Meteor
› JSLint - a JavaScript code quality tool
› jsFiddle
› D3.js
› WebStorm
推荐书目
› JavaScript 权威指南第 5 版
› Closure: The Definitive Guide
F1024

请教 js 正则匹配中有变量该如何处理啊

  •  
  •   F1024 · Jun 4, 2018 · 4989 views
    This topic created in 3075 days ago, the information mentioned may be changed or developed.

    ";1627207:945375942;":{"price":"78.00"},

    ";1627207:771237690;":{"price":"88.00"},

    ";1627207:1349519332;":{"price":"58.00"},

    ";1627207:1554775267;":{"price":"68.00"},

    /1627207:945375942;":{"price":"(\d+.\d+)"/ //这样匹配结果 78

    1627207:XXXXXXXX 这种值是变量 每次循环获取到一个 分别来取得价格 该如何代写正则表达式啊

    Supplement 1  ·  Jun 4, 2018








    图一里有值 从图 2 里取价格 分别对应到图一的 span 上 顺序是乱的 所以要用变量正则
    azh7138m
    azh7138m
    Jun 4, 2018 via Android
    1
    没看懂啥意思
    给个 test input 和期望的输出看下?
    O3YwA1ENkb7i35XJ
    O3YwA1ENkb7i35XJ
    Jun 4, 2018
    2
    let a = `
    ";1627207:945375942;":{"price":"78.00"},

    ";1627207:771237690;":{"price":"88.00"},

    ";1627207:1349519332;":{"price":"58.00"},

    ";1627207:1554775267;":{"price":"68.00"},

    `

    let mm = {}

    a.replace(/;(\d+):(\d+);":\{"price":"(.+?)"\}/g, function (all, a, b, price) {
    if (typeof mm[a] === 'undefined')
    {
    mm[a] = {}
    }

    mm[a][b] = price;
    })

    console.log(JSON.stringify(mm, 0, 2))


    ```
    {
    "1627207": {
    "771237690": "88.00",
    "945375942": "78.00",
    "1349519332": "58.00",
    "1554775267": "68.00"
    }
    }
    ```

    得到 mm 之后, 想怎么取就怎么取..
    ming2050
    ming2050
    Jun 4, 2018 via iPhone
    3
    前边也用正则匹配下就好了,提取值时候注意下分组就好了
    azh7138m
    azh7138m
    Jun 4, 2018
    4
    O3YwA1ENkb7i35XJ
    O3YwA1ENkb7i35XJ
    Jun 4, 2018
    5
    @azh7138m 不是, 他是想用 动态的方式生成正则.

    但其实不需要, 按我刚才说的方式来做, 直接全部匹配出来, 然后爱用哪个用哪个.
    gengfire
    gengfire
    Jun 4, 2018 via iPhone
    6
    reg = new RegExp(string + var);
    F1024
    F1024
    OP
    Jun 4, 2018
    7
    @mringg
    前面的值 1627207:xxxxxxx 不是固定的而且顺序是被打乱的 是从其他地方取过来的
    所以要每次获取一个 1627207:xxxxxxx 来获取对应的 price
    F1024
    F1024
    OP
    Jun 4, 2018
    8
    @azh7138m 我上图了 你看下 第二个图 新窗口打开下
    F1024
    F1024
    OP
    Jun 4, 2018
    9
    @mringg 我上图了 麻烦帮我看看
    azh7138m
    azh7138m
    Jun 4, 2018 via Android
    10
    当成 JSON 直接用啊,为啥搞这么麻烦
    laqow
    laqow
    Jun 4, 2018 via Android
    11
    第一次替换:
    , →回车
    第二次查找:
    945375942.*?(\d+.\d+)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4929 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 06:45 · PVG 14:45 · LAX 22:45 · JFK 01:45
    ♥ Do have faith in what you're doing.