2012-07-26 50 views
0

我有填充一个<span>标签的信用卡场e.gjQuery的分裂文本

<span>****-****-****-1111 (Expires 12/2012)</span> 

我需要提取的日期,并找出如果它是在过去。

此刻,我有以下的jQuery,但我被困在分割点()只提取日期。

var $selectedDate = $('.prev-card .chzn-container .chzn-single span').text().split(); 
var $now = new Date(); 
if ($selectedDate < $now) { 
    alert('past') 
} 
else{ 
    alert('future') 
} 

我认为,涵盖一切,但随时要求获得更多信息

+2

你为什么做这件事情与客户端,而不是服务器侧? – bugwheels94 2012-07-26 15:32:27

+0

@AnkitGautam也许这是为了避免往返到服务器时,一些小事可以被检测到的客户端?我相信服务器端也有类似的验证。 – 2012-07-26 15:33:30

+0

这是什么.split()有用吗? – Bergi 2012-07-26 15:42:27

回答

2

试试这个:

var selectedDate = $("...").text().match(/Expires (\d+)\/(\d+)/), 
    expires = new Date(selectedDate[2],selectedDate[1]-1,1,0,0,0), 
    now = new Date(); 
if(expires.getTime() < now.getTime()) alert("past"); 
else alert("future"); 
+0

遗漏的类型错误的整点:无法读取属性“2”空 – 2012-07-26 15:40:34

+0

的谢谢,固定@ user1555175错误修复 – 2012-07-26 15:45:07

0

我不会把它分解。我会使用一个正则表达式:

var value = $('.prev-card .chzn-container .chzn-single span').text(); 
/\d+\/\d+/.exec(value) //["12/2012"] 
1

小修复到Kolink的回答是:

var selectedDate = $("...").text().match(/Expires (\d+)\/(\d+)/), 
    expires = new Date(selectedDate[2],selectedDate[1]-1,1,0,0,0), 
    now = new Date(); 
if(expires.getTime() < now.getTime()) alert("past"); 
else alert("future"); 

(正则表达式不需要引号)

+0

谢谢,非常感谢 – 2012-07-26 15:45:38