string.search |点击次数

时间:2011-07-02 13:19:43

标签: javascript regex string

我正在使用.search字符串方法在字符串中搜索数字:

var myString = "20 fur bar 50";
alert(myString.search(/\d/);

返回第一个数字的位置:0。 我怎样才能得到第二个数字的位置? 有没有办法找出有多少次点击?

3 个答案:

答案 0 :(得分:2)

使用match代替g(全局)标记。

jsFiddle

如果您不想单独匹配数字,请将其更改为\d+

jsFiddle

答案 1 :(得分:0)

如何获得第二个数字的位置?

  

myString.indexOf(myString.match(/ \ d / g)的[1])

有没有办法找出有多少次点击?

  

myString.match(/ \ d /克)。长度

当然,我上面有硬编码索引1,你必须做适当的检查。

答案 2 :(得分:0)

如果您使用exec

var myString = "20 fur bar 50";
var numberPositions = [];
var numberRe = /\d+/g;
for (var match; (match = numberRe.exec(myString));) {
  numberPositions.push(
      [numberRe.lastIndex - match[0].length, numberRe.lastIndex]);
}

然后numberPositions是一个包含起始(包含),结束(独占)对的数组:

[[0,2],[11,13]]

[0,2]是20的字符范围(结束排他),[11,13]是50的相应范围。

在那里使用的正则表达式是/\d+/而不是/\d/,因此您不需要为20获取单独的范围,而是获得整个整数的一个范围。< / p>