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 读取:2013 年 11 月 23 日,但它为空。任何想法为什么?

4

2 回答 2

5

String.match() expects its parameter to be a RegExp object, not a string.

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 回答