java怎么检测日期_如何检查对象是否是日期?

对于所有类型,我都编写了一个Object原型函数 . 它可能对你有用

Object.prototype.typof = function(chkType){

var inp = String(this.constructor),

customObj = (inp.split(/\({1}/))[0].replace(/^\n/,'').substr(9),

regularObj = Object.prototype.toString.apply(this),

thisType = regularObj.toLowerCase()

.match(new RegExp(customObj.toLowerCase()))

? regularObj : '[object '+customObj+']';

return chkType

? thisType.toLowerCase().match(chkType.toLowerCase())

? true : false

: thisType;

}

现在你可以检查这样的任何类型:

var myDate = new Date().toString(),

myRealDate = new Date();

if (myRealDate.typof('Date')) { /* do things */ }

alert( myDate.typof() ); //=> String

[ Edit march 2013 ]基于进步的洞察力,这是一个更好的方法:

Object.prototype.is = function() {

var test = arguments.length ? [].slice.call(arguments) : null

,self = this.constructor;

return test ? !!(test.filter(function(a){return a === self}).length)

: (this.constructor.name ||

(String(self).match ( /^function\s*([^\s(]+)/im)

|| [0,'ANONYMOUS_CONSTRUCTOR']) [1] );

}

// usage

var Some = function(){ /* ... */}

,Other = function(){ /* ... */}

,some = new Some;

2..is(String,Function,RegExp); //=> false

2..is(String,Function,Number,RegExp); //=> true

'hello'.is(String); //=> true

'hello'.is(); //-> String

/[a-z]/i.is(); //-> RegExp

some.is(); //=> 'ANONYMOUS_CONSTRUCTOR'

some.is(Other); //=> false

some.is(Some); //=> true

// note: you can't use this for NaN (NaN === Number)

(+'ab2').is(Number); //=> true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值