Skip to content

Commit 6c8c4d7

Browse files
committed
fix bug
1 parent 59c2767 commit 6c8c4d7

File tree

2,497 files changed

+336341
-126
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,497 files changed

+336341
-126
lines changed

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.idea
2+
.node_modules
3+
.DS_Store

.idea/workspace.xml

+85-95
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

+18-5
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ $ gulp compress #生成judge.min.js文件
1818
>使用`npm`安装`judgejs`
1919
2020
```js
21-
$ sudo npm install judgejs -g
21+
$ npm install judgejs
2222
```
2323

2424
>使用`bower` 安装`judgejs`
2525
2626
```js
27-
$ sudo bower install judgejs -g
27+
$ bower install judgejs
2828
```
2929

3030
# 目录
@@ -42,14 +42,17 @@ var judge = require('judgejs');
4242

4343
judge.version
4444

45-
=>0.6.5
45+
=>0.7.0
4646
```
4747

4848

4949
可以用`$`来代替`judge`。例如:
5050

5151
```js
52-
$.version;//0.6.5
52+
require('../judge.js')
53+
54+
$.version;
55+
=> 0.7.0
5356
```
5457

5558
# API
@@ -341,6 +344,11 @@ judge.min(0,-1);
341344
342345
判断一个给定的值是否是偶数,返回布尔值
343346

347+
```js
348+
$.isEven(null);
349+
350+
=>false
351+
```
344352
>`judge.isNull(value)`
345353
346354
```js
@@ -865,4 +873,9 @@ judge.isIE8Plus(false);//exclude IE8
865873

866874
```js
867875
judge.strLength('你好China');//9
868-
```
876+
```
877+
878+
>`judge.isLeapYear(year)`
879+
880+
判断是否是闰年
881+

bower.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "judgejs",
3-
"description": "a js library for judging something",
3+
"description": "A lightweight vanilla JavaScript library for judging",
44
"main": "judge.js",
55
"authors": [
66
"trigkit4"

examples/index.html

+14
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,20 @@
4747

4848
document.writeln(judge.assert(judge.isArray([null,undefined]),'[null,undefined] is array'));
4949
document.writeln(judge.assert(judge.isObject(undefined),'undefined is object'));
50+
document.writeln("<br>");
51+
document.writeln('以下判断请使用移动设备打开本页面或扫描二维码打开!');
52+
document.writeln("<br>");
53+
document.writeln("<br>");
54+
document.writeln('your current device is touch device:'+$.isTouchDevice());
55+
document.writeln("<br>");
56+
document.writeln("<br>");
57+
document.writeln('your current Android version is:'+ $.androidVersion());
58+
document.writeln("<br>");
59+
document.writeln("<br>");
60+
document.writeln('your current ios version is:'+ $.iosVersion());
61+
document.writeln("<br>");
62+
document.writeln("<br>");
63+
document.writeln('your current iphone device is:'+ $.iosDevice());
5064
</script>
5165
</body>
5266
</html>

judge.js

+26-20
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,13 @@
1717
}
1818
}(this, function (root) {
1919
root = this || global;
20+
'use strict';
2021
var judge = {},
2122
op = Object.prototype,
2223
oString = op.toString,
2324
funcTo = Function.prototype.toString;
2425
var reg = {
25-
url: /(((^https?:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?(?:[\w]*))?)$/g,
26+
url: /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/,
2627
email: /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/,
2728
id:/(^\d{15}$)|(^\d{17}([0-9]|X)$)/i,
2829
qq:/^[1-9][0-9]{4,9}$/,
@@ -33,14 +34,13 @@
3334
//support Node.js module
3435
if(typeof window !== 'undefined'){
3536
var ua = 'navigator' in window && 'userAgent' in navigator && navigator.userAgent.toLowerCase() || '';
36-
window.judge = window.$ = judge;
3737
}
3838

3939
judge = (function () {
4040
return {
41-
version: '0.6.5',
41+
version: '0.7.0',
4242
/*
43-
* `array,object,number,string,null,undefined,function,boolean`
43+
* array,object,number,string,null,undefined,function,boolean`
4444
* */
4545
type: function (obj) {
4646
return Object.prototype.toString.call(obj)
@@ -64,10 +64,10 @@
6464
}catch(e){
6565
return true;
6666
}
67-
6867
},
6968
isArray : function (value) {
70-
return typeof value ==='object' && oString.call(value) === '[object Array]';
69+
return typeof value ==='object' &&
70+
oString.call(value) === '[object Array]';
7171
},
7272
/*
7373
judge object is plain object(1.created by{},2.created by new Object())
@@ -126,7 +126,7 @@
126126
}else if(find('presto')){
127127
return "opera";
128128
}
129-
return 'Unknow kernel'
129+
return 'unknow'
130130
},
131131
/*
132132
case sensitive
@@ -154,7 +154,7 @@
154154
return arrDevice[k];
155155
}
156156
}
157-
return "Unknow Platform";
157+
return "unknow";
158158
},
159159
iosDevice: function () {
160160
var iPhone4 = ua.match(/iphone/) && window.screen.height ==480,
@@ -168,13 +168,13 @@
168168
var device = [
169169
iPhone4,iPhone5,iPhone6,iPhone6P
170170
];
171-
arrDevice = ["iPhone4","iPhone5","iPhone6","iPhone6Plus"];
171+
var arrDevice = ["iPhone4","iPhone5","iPhone6","iPhone6Plus"];
172172
for(var j = 0,l=device.length;j<l;j++){
173173
if(device[j]){
174174
return arrDevice[j];
175175
}
176176
}
177-
return "Unknow iosDevice";
177+
return "unknow";
178178
},
179179
androidDevice: function () {
180180
//HM NOTE 1s ->navigator.appVersion
@@ -190,15 +190,14 @@
190190
if(ua.match(/m3/)){
191191
return 'mx3'
192192
}
193-
else return 'unknow device';
194-
193+
else return 'unknow';
195194
},
196195
iosVersion: function () {
196+
if(!$.isMobile() && !ua.match(/iphone/)) return false;
197197
if(ua.match(/iPhone/i)){
198-
os = ua.indexOf('os');
198+
var os = ua.indexOf('os');
199199
}
200-
iosVersion = ua.substr(os + 3, 5).replace('_','.').replace('_','.');
201-
return iosVersion;
200+
return ua.substr(os + 3, 5).replace('_','.').replace('_','.');
202201
},
203202
androidVersion: function () {
204203
var match = ua.match(/android\s([0-9\.]*)/i);
@@ -236,8 +235,8 @@
236235
return false;
237236
},
238237
isTouchDevice: function(){
239-
return 'ontouchstart' in window ||
240-
'DocumentTouch' in window && document instanceof DocumentTouch;
238+
return 'ontouchstart' in root ||
239+
'DocumentTouch' in root && document instanceof DocumentTouch;
241240
},
242241
email: function(num){
243242
return reg.email.test(num);
@@ -252,8 +251,8 @@
252251
return !!str.match(/^.*[A-Z]+.*$/);
253252
},
254253
isBrowser: function(){
255-
return !!(typeof window !== 'undefined' &&
256-
navigator !== 'undefined' && window.document
254+
return !!(typeof root !== 'undefined' &&
255+
navigator !== 'undefined' && root.document
257256
);
258257
},
259258
isFunction: function (fn) {
@@ -383,7 +382,7 @@
383382
return (reg.id.test(num));
384383
},
385384
isEven: function(num){
386-
return (num % 2 === 0);
385+
return num!==null && (num % 2 ===0);
387386
},
388387
isOdd: function (num) {
389388
return (num % 2 === 1)
@@ -605,8 +604,15 @@
605604
* */
606605
strLength: function (str) {
607606
return String(str).replace(/[^\x00-\xff]/g,'aa').length;
607+
},
608+
isLeapYear: function (year) {
609+
return !!(((year % 4) ==0) && ((year % 100) !==0) ||(year % 400) ==0 );
608610
}
609611
};
610612
})();
613+
root.judge = judge;
614+
//if $ is undefined,point to judge
615+
root.$ === undefined && (root.$ = judge);
616+
611617
return judge;
612618
}));

lib/judge.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/.bin/dateformat

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/.bin/gulp

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/.bin/jshint

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/.bin/mkdirp

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/.bin/semver

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/.bin/shjs

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/.bin/strip-indent

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/.bin/strip-json-comments

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/.bin/uglifyjs

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/.bin/user-home

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

node_modules/align-text/LICENSE

+21
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)