可能重复:
Get query string values in JavaScript
Use the get paramater of the url in javascript
我有很长的URL列表,在URL的一部分我有一个命令,例如'KEY = 123'。我想找到所有这些钥匙。
例如:/somecommand?ACTION=UPDATE&DATATYPE=1&KEY=462&NUMBER=123.5263&SOMEID=845&IDTYPE=1
如何实现这一目标?我的想法只是搜索所有'KEY'字样并查找旁边的数字 - 但我想有更快的事情。
首选语言是Javascript。
网址混乱,无法轻易地从文本中推断出来。文本的一个小例子:
2011-07-29 01:17:55.965
/ somecommand?ACTION = UPDATE& DATATYPE = 1& KEY = 462& NUMBER = 123.5263& SOMEID = 845& IDTYPE = 1 200 685ms 157cpu_ms 87api_cpu_ms 0kb ABCABC / 2.0 CFNetwork / 485.12.7 Darwin / 10.4.0 Paros / 3.2.13` 2011-07-29 01:05:19.566 /somecommand?ACTION=UPDATE&DATATYPE=1&KEY=462&NUMBER=123.5263&SOMEID=845&IDTYPE=1 200 29ms 23cpu_ms 0kb ABCABC/2.0 CFNetwork/485.12.7 Darwin/10.4.0 Paros/3.2.13
2011-07-29 01:04:41.231 /somecommand?ACTION=UPDATE&DATATYPE=1&KEY=462&NUMBER=123.5263&SOMEID=845&IDTYPE=1 200 972ms 78cpu_ms 8api_cpu_ms 0kb ABCABC/2.0 CFNetwork/485.12.7 Darwin/10.4.0 Paros/3.2.13
答案 0 :(得分:1)
您需要的Javascript就像 -
var text = 'ACTION=UPDATE&DATATYPE=1&KEY=462&NUMBER=123.5263&SOMEID=845&IDTYPE=1&key=678';
var matches = text.match(/KEY=\d*|key=\d*/g);
for (i=0; i<matches.length; i++) {
alert(matches[i]);
}
如果您只想要数字,可以执行类似的操作 -
var text = 'ACTION=UPDATE&DATATYPE=1&KEY=462&NUMBER=123.5263&SOMEID=845&IDTYPE=1&key=678';
var matches = text.match(/KEY=\d*|key=\d*/g);
for (i=0; i<matches.length; i++) {
alert(matches[i].toLowerCase().replace('key=',''));
}
答案 1 :(得分:0)
如果您只对KEY值感兴趣:
var regex = new RegExp("KEY=(\d+)");
var result = regex.exec(window.location.href);
在你的情况下,结果将是“123”。如果你有多行,那么:
var regex = new RegExp("KEY=(\d+)", "gm");
var results = regex.exec(window.location.href);
在这种情况下,结果是一个数组。
答案 2 :(得分:0)
a = "/somecommand?ACTION=UPDATE&DATATYPE=1&KEY=462&NUMBER=123.5263&SOMEID=845&IDTYPE=1";
a.match(/KEY\=(\d+)/gi)