Get id from url
Get id from url
我有以下示例url:#/reports/12/expense/11
。
我需要在报告->12之后获得id。我在这里问的是最合适的方法。我可以在url中搜索reports
,然后获取内容。。。但是,如果在某个时刻我决定更改url,我将不得不更改我的算法。
你认为这里最好的方式是什么。一些代码示例也将非常有用。
很难编写经得起未来考验的代码,因为很难预测我们未来可能会做的疯狂事情!
然而,如果我们假设id将始终是URL中连续数字的字符串,那么您可以简单地查找:
function getReportId(url) {
var match = url.match(/'d+/);
return (match) ? Number(match[0]) : null;
}
getReportId('#/reports/12/expense/11'); // => 12
getReportId('/some/new/url/report/12'); // => 12
您应该使用正则表达式来查找字符串中的数字。将正则表达式传递给字符串的.match()
方法将返回一个数组,该数组包含基于正则表达式的匹配项。在这种情况下,您感兴趣的返回数组的项将位于1
的索引处,假设该数字始终在reports/
:之后
var text = "#/reports/12/expense/11";
var id = text.match(/reports'/('d+)/);
alert(id[1]);
这里的'd+
意味着你要寻找至少一个后面跟着零到无限数量的数字。
var text = "#/reports/12/expense/11";
var id = text.match("#/[a-zA-Z]*/([0-9]*)/[a-zA-Z]*/")
console.log(id[1])
Regex解释:
- #/与字符#/字面匹配
- [a-zA-Z]*-匹配一个单词
- /符合字符/字面意思
- 第一个捕获组-([0-9]*)-这与一个数字匹配
- [a-zA-Z]*-匹配一个单词
- /符合字符/字面意思
正则表达式可能很棘手(添加昂贵的内容)。所以通常情况下,如果你能在没有他们的情况下有效地做同样的事情,你应该这样做。查看您的URL格式,您可能希望至少对其进行一些约束,否则问题将非常复杂。例如,您可能想假设该值总是直接出现在键后面,因此在您的示例报告中=12,费用=11,但报告和费用可以切换(例如,费用/11/report/12),您会得到相同的结果。
我只想使用字符串分割:
var parts = url.split("/");
for(var i = 0; i < parts.length; i++) {
if(parts[i] === "report"){
this.reportValue = parts[i+1];
i+=2;
}
if(parts[i] === "expense"){
this.expenseValue = parts[i+1];
i+=2;
}
}
因此,通过这种方式,您的关键/价值部分可以出现在阵列中的任何位置
注意:您还需要检查i+1是否在零件阵列的范围内。但这只会让这个示例代码变得丑陋,而且很容易添加。根据您期望(或不期望)的值,您可能还想使用isNaN 检查值是否为数字
- Get JSON from an url
- Javascript/Html5 Download zip from url
- dojo-dgrid带有store from url(json数据)重载/刷新按钮
- Regex Extract ID From URL
- javascript json parse from URL
- Javascript from a URL
- PHP bringing in XML from URL
- Jquery.load URL from different folder
- Get url from window.location with selenium
- retrieving var from URL
- react - json from url
- Parse JSON from URL
- Get id from url
- Execute php url from jscript
- xml2js read from url
- POST on JAVA Restful WebService URL from JavaScript
- Retrieve JSON from URL
- 无法解析'state1'From state' state'而在url链接中有参数
- jquery map from json url
- Firefox addon / javascript: get url from bar