我正在使用.search字符串方法在字符串中搜索数字:
var myString = "20 fur bar 50";
alert(myString.search(/\d/);
返回第一个数字的位置:0。 我怎样才能得到第二个数字的位置? 有没有办法找出有多少次点击?
答案 0 :(得分:2)
答案 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/
,因此您不需要为2
和0
获取单独的范围,而是获得整个整数的一个范围。< / p>