从JavaScript .getAttribute()中提取特定数据

时间:2014-03-12 17:57:38

标签: javascript string parsing

所以我想说我有这个HTML链接。

<a id="avId" href="http://www.whatever.com/user=74853380">Link</a>

我有这个JavaScript

av = document.getElementById('avId').getAttribute('href')

返回:

"http://www.whatever.com/user=74853380"

如何从结果字符串中专门提取74853380

3 个答案:

答案 0 :(得分:1)

您可以使用正则表达式:

var exp = /\d+/;
var str = "http://www.whatever.com/user=74853380";
console.log(str.match(exp));

说明:

/ \ d + / - 表示“一个或多个数字”

当您需要找到多个号码时的另一种情况

"http://www.whatever.com/user=74853380/question/123123123"

您可以使用 g 标记。

var exp = /\d+/g;
var str = "http://www.whatever.com/user=74853380/question/123123123";
console.log(str.match(exp));

您可以使用正则表达式play

答案 1 :(得分:1)

有几种方法可以做到这一点。

1。)使用substrindexOf提取

var str = "www.something.com/user=123123123";
str.substr(str.indexOf('=') + 1, str.length);

2.)使用正则表达式

var str = var str = "www.something.com/user=123123123";
// You can make this more specific for your query string, hence the '=' and group
str.match(/=(\d+)/)[1];  

您也可以在=字符上拆分并在结果数组中取第二个值。你最好的选择可能是正则表达式,因为它更强大。如果您的查询字符串变得更复杂,分割字符或使用substrindexOf可能会失败。如果需要,正则表达式还可以捕获多个组。

答案 2 :(得分:0)

嗯,你可以split()作为单行答案。

var x = parseInt(av.split("=")[1],10); //convert to int if needed