の数:string.search |私は、.search文字列メソッドを使用して、文字列の数を探してるヒット
var myString = "20 fur bar 50";
alert(myString.search(/\d/);
は、これが最初の番号の位置を返します:0 はどのように私はの位置を取得することができます二番目の番号? ヒット数がいくつあるか調べる方法はありますか?
の数:string.search |私は、.search文字列メソッドを使用して、文字列の数を探してるヒット
var myString = "20 fur bar 50";
alert(myString.search(/\d/);
は、これが最初の番号の位置を返します:0 はどのように私はの位置を取得することができます二番目の番号? ヒット数がいくつあるか調べる方法はありますか?
2番目の番号の位置はどのように取得できますか?
myString.indexOf(myString.match(/ \ D/G)[1])
があるどのように多くのヒットを見つけるための方法はありますか?
myString.match(/ \ D/G)もちろん
.LENGTH、私は上記のインデックス1をハードコーディングしている、あなたは適切なチェックを行う必要があります。
あなたが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
の場合は(end-exclusive)、50
の場合は[11,13]が対応します。
正規表現は/\d+/
の代わり/\d/
ので、代わりに2
のための別々の範囲を取得すると0
あなたが全体の整数のための1つの範囲を得ることがある使用しました。
ありがとうございます!それは私が探していたものでした。 – iWebaholic
彼はもともとポジションを求めていたのですか? :) – naveen
@naveenそれはそれのように見えますが、その後、OPはこれがまさに彼らが必要としていると言った:) – alex