拥有包含数字值的网址。需要提取该数值。但是数值位置在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”。
答案 0 :(得分:6)
使用基本正则表达式:
[ "1234567" ]
这将返回字符串中的第一个数字系列。在上面的例子中,我们得到以下结论:
$( something )
答案 1 :(得分:1)
答案 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)
}
答案 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];
};