ここで奇妙なもの (またはそうではないかもしれません)、Javascript 正規表現を介して 2 つのキャプチャ グループを取得しようとしています。最初のグループ: 1 つ以上の数字 (0-9)、2 つ目のグループ: 1 つ以上の単語文字またはハイフン (AZ、0-9 、 -) しかし、何らかの理由で後者のグループを取得できません。
注意:|
どちらか一方を受け取る可能性があるため、意図的に代替 ( ) 文字を含めています)
これは私が使用しているコードです:
var subject = '#/34/test-data'
var myregexp = /#\/(\d+)|\/([\w-]+)/;
var match = myregexp.exec(subject);
if (match != null && match.length > 1) {
console.log(match[1]); // returns '34' successfully
console.log(match[2]); // undefined? should return 'test-data'
}
おもしろいことに、Regex Buddy は、2 つのキャプチャ グループがあることを教えてくれ、実際にはテスト フレーズでそれらを正しく強調表示します。
これは私の JavaScript 構文の問題ですか?