2017-03-09 13 views
0

クローム拡張機能を作成しています。他のウェブサイトからHTMLデータを解析する機能があります。そして、私は別のものをキャプチャするために正規表現を使用したい、以下のようにjavascriptタグ内に配置された2つのJson文字列を解析する必要があります。私は、次の正規表現で第二の部分をキャプチャするために、成功を持っている:それは}まで一致すると予想しながら、それが唯一のトークンCSRFの終わりに一致させることができるようJavascriptの正規表現がjsonとhtmlで一致する

/iDetailData\s+=\s+({[^]+});/g 

が、最初の部分は難しいようです。。私が最初にJSONの一部をキャプチャするために、次の正規表現を使用している:あなたはすべてのこのような場合のために経験している場合

/iDetailConfig\s+=\s+([^}]+)/g 

あなたは私を助けていただけますか?

<script type="text/javascript"> 
    var iDetailConfig = { 
    'pageType': '', 
    'pageid': 'laputa20150511141457', 
    'offerid': '528011005304', 
    'catid': '122238002', 
    'dcatid': '53486008', 
    'parentdcatid': '54546001', 
    'isRangePriceSku': 'true', 
    'isSKUOffer': 'true', 
    'memberid': 'b2b-275072844861040', 
    'loginId': '淘淘羊供应链', 
    'islogin': 'false', 
    'buyerUserID': '', 
    'isTP': 'true', 
    'isSlsjSeller': 'false', 
    'loginurl': '', 
    'topDomainTpl': '', 
    'unit': '个', 
    'priceUnit': '元', 
    'isPreview': 'false', 
    'isVirtualCat': 'false', 
    'isLadderGroup': '', 
    'refPrice': '339.00', 
    'beginAmount': '1', 
    'mergeVariable': 'asyncResourcesAliimg', 
    'currentTime': '1488967781423', 
    'isAccessSpecialSuppy': 'true', 
    'domainType': '', 
    'sourceType': 'freebuynowoffer', 
    'hasConsignPrice': 'false', 
    'mkcActivityId': '', 
    'mkcActivityStartTime': '', 
    'qrcode': 'https://gqrcode.alicdn.com/img?type=ali&amp;w=150&amp;h=150&amp;el=m&amp;text=http%3A%2F%2Fma.m.1688.com%2Frush.html%3Fsecret%3D8mNOFtQd', 
    'minqrcode': 'https://gqrcode.alicdn.com/img?type=ali&amp;w=46&amp;h=46&amp;el=m&amp;text=http%3A%2F%2Fma.m.1688.com%2Frush.html%3Fsecret%3D8mNOFtQd', 
    'officialActivityId': '', 
    'userId': '2750728448', 
    'end': 0, 
    '_csrf_token': '9274f530e426ddb9af2d0f254d464fce' 
    }; 

    var iDetailData = { 
    "sku": { 
     "price": "", 
     "retailPrice": "", 
     "canBookCount": "274", 
     "saleCount": "45", 
     "priceRange": [ 
     [1, 339.00], 
     [2, 269.00] 
     ], 
     "priceRangeOriginal": [ 
     [1, 339.00], 
     [2, 269.00] 
     ], 
     "skuProps": [{ 
     "value": [{ 
      "name": "黄白色(大象长颈鹿款))" 
     }, { 
      "name": "米白色(小羊小鸭款)" 
     }, { 
      "name": "蓝色(小牛小马款)" 
     }, { 
      "name": "粉色" 
     }], 
     "prop": "颜色" 
     }, { 
     "value": [{ 
      "name": "50*30*7/9cm" 
     }], 
     "prop": "尺寸规格" 
     }], 
     "skuMap": { 
     "米白色(小羊小鸭款)&gt;50*30*7/9cm": { 
      "canBookCount": 174, 
      "skuId": 3201563335895, 
      "specId": "7f68748bd9b704fa9708242ec570aa33", 
      "saleCount": 3 
     }, 
     "蓝色(小牛小马款)&gt;50*30*7/9cm": { 
      "canBookCount": 44, 
      "skuId": 3201563335894, 
      "specId": "57e90efbfac8e7b69e73108a07d6198f", 
      "saleCount": 10 
     }, 
     "黄白色(大象长颈鹿款))&gt;50*30*7/9cm": { 
      "canBookCount": 7, 
      "skuId": 3201563335893, 
      "specId": "3c4e75dbf21e70d5cea3dcb033bf0a9c", 
      "saleCount": 7 
     }, 
     "粉色&gt;50*30*7/9cm": { 
      "canBookCount": 49, 
      "skuId": 3201563335896, 
      "specId": "5139112038a0bdef1f3d48e035448d48", 
      "saleCount": 6 
     } 
     }, 
     "end": 0 
    } 
    }; 
    iDetailData.allTagIds = []; 
    iDetailData.isSourcePromotion = false 
    iDetailData.hasPurcharseMark = false 
</script> 
+0

申し訳ありません、これらのJSON文字列はどこですか? – Phil

+0

@Philそれはあなたが見ることができる変数として定義されています: 'var iDetailConfig'と' var iDetailData' –

+0

あなたの質問を理解できません。 **あなたは何をしようとしていますか?あなたはすでに 'iDetailConfig'と' iDetailData'というオブジェクトを持っています。 – Phil

答えて

1

キャプチャにを含める場合};、これを試してみてください:

/iDetailConfig\s+=\s+([^}]+});/g 
+0

神、私のために試して時間を節約しました。私はそのコンマを見逃していることに気付かなかった、ありがとう! –

関連する問題