0

私は通常、RegExp に非常に長けていますが、これには困惑しています。JavaScript スニペットは次のとおりです。

var justDateRegex = '\d+/\d+/\d+';
var dateStr = $('#Dropdown').find(':selected').text();
var onlyDate = dateStr.match(justDateRegex);
console.log('Regex: ' + justDateRegex + ' dateStr: ' + dateStr + ' onlyDate: ' + onlyDate);

console.log からの出力は次のとおりです。

Regex: d+/d+/d+ dateStr: 11/23/2013 12:00:00 AM onlyDate: null

onlyDate が 11/23/2013 になることを期待しますが、null です。理由はありますか?

4

2 に答える 2

5

String.match()パラメータが文字列ではなく RegExp オブジェクトであることを期待します。

var justDateRegex = /\d+\/\d+\/\d+/;
var dateStr = $('#Dropdown').find(':selected').text();
var onlyDate = dateStr.match(justDateRegex);
于 2013-08-23T16:30:24.653 に答える
1

問題は、 をエスケープする必要があることです\。これは動作中のJSFiddleです。

var justDateRegex = '\\d+/\\d+/\\d+';
var dateStr = '11/23/2013';
var onlyDate = dateStr.match(justDateRegex);
console.log('Regex: ' + justDateRegex + ' dateStr: ' + dateStr + ' onlyDate: ' + onlyDate);
于 2013-08-23T16:33:21.483 に答える