2

「data-RowKey=xxx」というテキスト内に含まれる文字列名コンテンツです。私はxxxから抜け出そうとしているので、次のことを試しました:

var val = content.substring(12 + content.indexOf("data-RowKey="), 3);

これはまったく機能しません。3 文字を取得するだけでなく、非常に長い文字列を取得します。誰が私が間違っているかを見ることができますか

4

4 に答える 4

2

.substring() [MDN]は 2 つのインデックスを取り、.substr() [MDN]はインデックスと長さを取ります。試す:

var val = content.substr(12 + content.indexOf("data-RowKey="), 3);

が文字列全体の場合"data-RowKey=xxx"、 を取得するには他にもさまざまな方法がありますxxx

var val = content.replace('data-RowKey=', '');
var val = content.split('=')[1]; // assuming `=` does not appear in xxx
于 2012-05-31T16:31:24.150 に答える
2

間違ったツールを使用しています。あるパターンに一致するデータをキャプチャする場合は、正規表現を使用する必要があります。値がちょうど 3 つの記号である場合、正しい表現は、任意の記号を/data-RowKey=(...)/表し、キャプチャする部分を指定することになります。.()

于 2012-05-31T16:31:48.640 に答える
1

これは機能します:

var value = content.match(/data-RowKey=(.*)/)[1];

ライブデモ

の後に値がある可能性がある場合はxxx、次を使用します。

"data-RowKey=123abc".match(/data-RowKey=(.{3}).*/)[1] // 123
于 2012-05-31T16:34:08.583 に答える
0

行キーが数値の場合、数値を整数として取得し、後で変換する必要がないため、これが最適な場合があります。

var val = parseInt( content.split("data-RowKey=")[1] );

常に 3 文字で変換する必要がない場合:

var val = content.split("data-RowKey=")[1].substring(0,3);
于 2012-05-31T17:02:26.060 に答える