如何仅从URL javascript或jquery中提取数值

时间:2015-06-10 18:00:43

标签: javascript jquery

拥有包含数字值的网址。需要提取该数值。但是数值位置在URL中不是常量。需要一种通用的方法如何提取。不能使用split方法,因为值的位置不是常量。

例如:

1. https:// www.example.com/A/1234567/B/D?index.html
2. http://www.example.com/A?index.html/pd=1234567
3. http://www.example.com/A/B/C/1234567?index.html

因此上述三个URL'S具有一个数值,其位置不是常数。 您能否提供一种通用方法,我可以获得预期的输出,如“1234567”。

5 个答案:

答案 0 :(得分:6)

使用基本正则表达式:

[ "1234567" ]

这将返回字符串中的第一个数字系列。在上面的例子中,我们得到以下结论:

$( something )

答案 1 :(得分:1)

这是fiddle

$(this).text().match(/\d+/)[0]

请注意,这意味着网址中没有其他数字序列! 在哪里!

答案 2 :(得分:1)

另一个工作:)

var str ="https:// www.example.com/A/1234567/B/D?index.html";
var numArray = [];
for (var i = 0, len = str.length; i < len; i++) {
    var character = str[i];
    if(isNumeric(character)){
        numArray.push(character);
    }
}
console.log(numArray);
function isNumeric(n) {
  return !isNaN(parseFloat(n)) && isFinite(n)
}

查看FIDDLE LINK

答案 3 :(得分:1)

添加到@Jonathan,如果要匹配所有数值,则可以使用htmlContent.match(/\d+/g)

答案 4 :(得分:1)

从URL中删除数字就像从任何字符串中删除一个数字一样,只要您的链接遵循每次具有相同格式的一般规则:只表示一个数字。也许你会遇到端口问题。

据说您需要提取网址:window.location.pathname,这样您才能获得网址中“http://example.com:8080”之后的内容。 然后使用正则表达式解析URL字符串:urlString.match('[\\d]+');

例如:

function getUrlId(){
  var path  = window.location.pathname;
  var result = path.match('[\\d]+');
  return result[0];   
};