0

誰もが知っ$1ているように、正規表現を使用する場合、string.replace()でキャプチャされたグループへの後方参照があるため、次のようなことができます。

string.replace(/(http:\/\/\S*)/g, '<a href="$1" target="_blank">link<\/a>')

$1今私の質問は、置換の外でキャプチャされたデータなどにアクセスする方法があるかどうかです。のようbackrefarray[1]$1または何か...

そのようなことは可能ですか、そしてどのように?

4

3 に答える 3

2

はい、matchを使用できます:

var array = str.match(/(http:\/\/\S*)/g);

(ただし、配列はインデックス0から始まります)

于 2012-12-09T15:27:08.327 に答える
2

固定文字列の代わりに、置換用の関数を使用できます。

string.replace(/(http:\/\/\S*)/g, function() {
    return '<a href="'+arguments[1]+'" target="_blank">link<\/a>';
})

パターン全体と各グループの一致は、引数として関数に渡されます。

于 2012-12-09T15:28:15.987 に答える
1

RegExp。$1

また、正規表現操作が終了すると$1$2キャプチャ変数(存在する場合)は、グローバルRegExpオブジェクトのプロパティとしてグローバルに使用できます。試合が成功した後、これを試してみてください。

alert(RegExp.$1);
于 2012-12-09T17:18:59.863 に答える