简单的RegEx问题 - 如何找到密钥

时间:2011-07-31 14:54:40

标签: javascript regex

  

可能重复:
  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。

编辑:

网址混乱,无法轻易地从文本中推断出来。文本的一个小例子:

  1. 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`
  2. 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
  3. 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

3 个答案:

答案 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)