@3r/tool
Version:
🏃包含一些常用方法例如对象深克隆、递归调用、一一对比/数组交集、并集、差集/二维向量点乘、叉乘/股票KDJ、MACD、RSI、BOLL/验证为空、车牌号、邮箱、身份证、统一社会信用代码、手机号、版本对比/转换日期、星座、身份证解析、字节/随机颜色、手机号、身份证号码、统一社会信用代码...持续更新整合
1 lines • 4.25 kB
JavaScript
var i,t;(t=i=i||{})[t.Large=1]="Large",t[t.Small=2]="Small",t[t.LargeSmall=3]="LargeSmall",t[t.Number=4]="Number",t[t.LargeNumber=5]="LargeNumber",t[t.SmallNumber=6]="SmallNumber",t[t.LargeSmallNumber=7]="LargeSmallNumber";class s{static likeUsci(t){return s.LIKE_USCI_REGEXP.test(t)}static isNullOrEmpty(t){return"object"==typeof t?null===t||0===Object.keys(t).length:""===t||void 0===t}static isPhoneNumber(t){return s.PHONE_NUMBER_REGEXP.test(t)}static isTellPhoneNumber(t){return s.TELL_PHONE_NUMBER_REGEXP.test(t)}static isEmail(t){return s.EMAIL_REGEXP.test(t)}static isUnifiedSocialCreditIdentifier(t){if(18!==t.length)return!1;var e=t.substring(0,2),r=t.substring(2,8),s=t.substring(8,16)+"-"+t.substring(16,17);if(!/^((1?[1|2|3|9])|(5?[1|2|3|5|9])|(9?[1|2|3|9])|[2|3|4|6|7|8|A-G|Y][1])$/.test(e))return!1;if(!/^([0-9])*$/.test(r))return!1;if(!/^([0-9A-Z]{8}\-[\d{1}|X])$/.test(s))return!1;var E=s.split("-")[0],e=s.split("-")[1],i=[3,7,9,10,5,8,4,2];let n=0;for(let e=0;e<i.length;e++){let t=E.charCodeAt(e);48<=t&&t<=57&&(t-=48),65<=t&&t<=90&&(t-=55),n+=i[e]*t}if((n=11===(n=11-n%11)?"0":10===n?"X":n+"")!==e)return!1;var a=[1,3,9,27,19,26,16,17,20,29,25,13,8,24,10,30,28],l=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","T","U","W","X","Y"],o=t.substring(0,17),r=t.substring(17);let u=0;for(let t=0;t<o.length;t++){var p=o[t],p=l.indexOf(p);u+=p*a[t]}return r===(u=l[u=31===(u=31-u%31)?0:u])}static isVehicleNumber(t){return 7===t.length?s.VEHICLE_NUMBER_REGEXO.test(t):8===t.length&&s.ELECTRIC_VEHICLE_NUMBER_REGEXO.test(t)}static likeIDCardNumber(t){return s.LIKE_ID_CARD_NUMBER_REGEXO.test(t)}static isCitizenIdentificationNumber(t){return 18===t.length&&!!this.likeIDCardNumber(t)&&(e=>{let r=0;for(let t=0;t<e.length;t++){var s=Number(e[t]);r+=s*Math.pow(2,17-t)%11}return["1","0","X","9","8","7","6","5","4","3","2"][r%=11]})(t.substring(0,17))===t[17]}static passwordRules(t,e=i.LargeSmallNumber,r=6,s=20){let E=!0;return 0!=(e&i.Large)&&(E=E&&/(?=.*[A-Z])/.test(t)),0!=(e&i.Small)&&(E=E&&/(?=.*[a-z])/.test(t)),(E=0!=(e&i.Number)?E&&/(?=.*[0-9])/.test(t):E)&&t.length>=r&&t.length<=s}static versionComparison(t,e){var r=t.split(".").map(t=>+t),s=e.split(".").map(t=>+t);for(let t=0;t<r.length;t++){if(r[t]>s[t])return 1;if(r[t]<s[t])return-1}return 0}static isIPAddress(t){return s.IP_ADDRESS_REGEXP.test(t)}static passwordDifficulty(e,t){let r=0;return[/[0-9]/,/[a-z]/,/[A-Z]/,s.COMMON_KEYBOARD_CHARACTERS].forEach(t=>t.test(e)&&r++),t?t<=r:r}}s.LIKE_USCI_REGEXP=/[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}/,s.IP_ADDRESS_REGEXP=/^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$/,s.PHONE_NUMBER_REGEXP=/^1[3456789]\d{9}$/,s.TELL_PHONE_NUMBER_REGEXP=/^\d{3}-\d{7,8}|\d{4}-\d{7,8}$/,s.EMAIL_REGEXP=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,s.VEHICLE_NUMBER_REGEXO=/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/,s.ELECTRIC_VEHICLE_NUMBER_REGEXO=/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DABCEFGHJK]$)|([DABCEFGHJK][A-HJ-NP-Z0-9][0-9]{4}$))/,s.LIKE_ID_CARD_NUMBER_REGEXO=/^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/,s.COMMON_KEYBOARD_CHARACTERS=/[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘',。、]/im;let e=["passwordRules","versionComparison"];[...Reflect.ownKeys(s).filter(t=>"function"==typeof s[t]&&!e.includes(t)).map(t=>Object({name:t,prototype:String.prototype,type:"property"})),{name:"passwordRules",prototype:String.prototype,type:"method"},{name:"isNullOrEmpty",prototype:Object.prototype,type:"property"},{name:"versionComparison",prototype:String.prototype,type:"method"}].forEach(e=>{Object.defineProperty(e.prototype,e.name,{get:function(){let t=this;return"method"===e.type?function(){return s[e.name].apply(t,[t].concat(Object.values(arguments)))}:s[e.name](t)}})});export{i as PasswordRuleEnum,s as Verify};