2015-10-19 115 views
2

我想获得这些3个字符串(TTT,RDT和PRPR)之后和'?'之前的数字。标志。Javascript:将数字保存到一个字符串后的变量

示例网址:

1.) http://www.website3.com/pages/coupon5+TTT1?adaafaf124ac 
2.) http://www.website3.com/pages/coupon5+RDT12?aaacaf12c212 
3.) http://www.website3.com/pages/coupon5+PRPR300?t222 

例如变量:

  1. X = 1
  2. X = 12
  3. X = 300

    var path = http://www.website3.com/pages/coupon5+TTT1?adaafaf124ac; 
    var newpath = path.match((TTT|RDT|PRPR)\d+).substring(/d+); 
    
+1

+符号在浏览器中呈现不同。在这些特定的字符串之后得到数字会更好。 (TTT,RDT,PRPR) - 更新了问题。 – Buildingbrick

回答

1

以下语句将获得加号和问号标志之间的数字。

var path = 'http://www.website3.com/pages/coupon5+TTT1?adaafaf124ac'; 

var number_x = path.match(/\+.+\?/)[0].match(/\d+/)[0] * 1; 

如果您希望将字符串TTT/RDT/PRPR匹配,则使用下面的语句。

var number_x = path.match(/(TTT.+|RDT.+|PRPR.+)\?/)[0].match(/\d+/)[0] * 1 
+0

你能否更新你的答案? – Buildingbrick

+0

更新了答案,该答案试图与TTT/RDT/PRPR相匹配; – rajuGT

+0

该网址没有硬编码,但是从窗口中取出。这会使这不起作用吗? – Buildingbrick

0

这会让你们两个供应商和号码之后。

var path = 'http://www.website3.com/pages/coupon5+TTT1?adaafaf124ac'; 

var pathComponents = path.match(/(TTT|RDT|PRPR)([\d]+)\?/); 

console.log(pathComponents[0]) \\ 'TTT1?' ---- Everything 

console.log(pathComponents[1]) \\ 'TTT' ---- Vendor 

console.log(pathComponents[2]) \\ '1' ---- Number(s) 

这是在您的供应商仅限于TTT,RDT和PRPR的情况下。

+0

这对我来说很重要... – Buildingbrick

+0

加号在浏览器中呈现不同的效果,所以我不希望在匹配中使用它。 – Buildingbrick

+0

这不使用加号,我不明白什么是为你打破。 –

相关问题