-
Notifications
You must be signed in to change notification settings - Fork 58
Expand file tree
/
Copy pathbee.min.js
More file actions
6 lines (6 loc) · 24.4 KB
/
bee.min.js
File metadata and controls
6 lines (6 loc) · 24.4 KB
1
2
3
4
5
6
/**
* 字符串常用工具类
* Author:LinBilin
* Date:2017-12-23
*/
(function(){var Bee=Bee||{};Bee.areas=window.BEE_AREAS||{};Bee.PhoneUtils={phoneRegexs:{CHINA_TELECOM_PATTERN:/^(?:\+86)?1(?:33|53|7[37]|8[019])\d{8}$|^(?:\+86)?1700\d{7}$/,CHINA_UNICOM_PATTERN:/^(?:\+86)?1(?:3[0-2]|4[5]|5[56]|7[56]|8[56])\d{8}$|^(?:\+86)?170[7-9]\d{7}$/,CHINA_MOBILE_PATTERN:/^(?:\+86)?1(?:3[4-9]|4[7]|5[0-27-9]|7[8]|8[2-478])\d{8}$|^(?:\+86)?1705\d{7}$/,PHONE_CALL_PATTERN:/^(?:\(\d{3,4}\)|\d{3,4}-)?\d{7,8}(?:-\d{1,4})?$/,PHONE_PATTERN:/^(?:\+86)?(?:13\d|14[57]|15[0-35-9]|17[35-8]|18\d)\d{8}$|^(?:\+86)?170[057-9]\d{7}$/,PHONE_SIMPLE_PATTERN:/^(?:\+86)?1\d{10}$/},isPhoneCallNum:function(input){return this.phoneRegexs.PHONE_CALL_PATTERN.test(input)},isChinaTelecomPhoneNum:function(input){return this.phoneRegexs.CHINA_TELECOM_PATTERN.test(input)},isChinaUnicomPhoneNum:function(input){return this.phoneRegexs.CHINA_UNICOM_PATTERN.test(input)},isChinaMobilePhoneNum:function(input){return this.phoneRegexs.CHINA_MOBILE_PATTERN.test(input)},isPhoneNum:function(input){return this.phoneRegexs.PHONE_PATTERN.test(input)},isPhoneNumBySize:function(input){return this.phoneRegexs.PHONE_SIMPLE_PATTERN.test(input)}};Bee.EmailUtils={emailRegexs:{EMAIL_PATTERN:/^[-\w\+]+(?:\.[-\w]+)*@[-a-z0-9]+(?:\.[a-z0-9]+)*(?:\.[a-z]{2,})$/i},isEmail:function(input){return this.emailRegexs.EMAIL_PATTERN.test(input)}};Bee.StringUtils={isEmpty:function(input){return input==null||input==''},isNotEmpty:function(input){return!this.isEmpty(input)},isBlank:function(input){return input==null||/^\s*$/.test(input)},isNotBlank:function(input){return!this.isBlank(input)},trim:function(input){return input.replace(/^\s+|\s+$/,'')},trimToEmpty:function(input){return input==null?"":this.trim(input)},startsWith:function(input,prefix){return input.indexOf(prefix)===0},endsWith:function(input,suffix){var regex=new RegExp(this.escapeMetacharacterOfStr(suffix)+"$");return regex.test(input)},contains:function(input,searchSeq){return input.indexOf(searchSeq)>=0},equals:function(input1,input2){return input1==input2},equalsIgnoreCase:function(input1,input2){return input1.toLocaleLowerCase()==input2.toLocaleLowerCase()},containsWhitespace:function(input){return this.contains(input,' ')},repeat:function(ch,repeatTimes){var result="";for(var i=0;i<repeatTimes;i+=1){result+=ch}return result},deleteWhitespace:function(input){return input.replace(/\s+/g,'')},rightPad:function(input,size,padStr){return input+this.repeat(padStr,size)},leftPad:function(input,size,padStr){return this.repeat(padStr,size)+input},capitalize:function(input){var strLen=0;if(input==null||(strLen=input.length)==0){return input}return input.replace(/^[a-z]/,function(matchStr){return matchStr.toLocaleUpperCase()})},uncapitalize:function(input){var strLen=0;if(input==null||(strLen=input.length)==0){return input}return input.replace(/^[A-Z]/,function(matchStr){return matchStr.toLocaleLowerCase()})},swapCase:function(input){return input.replace(/[a-z]/ig,function(matchStr){if(matchStr>='A'&&matchStr<='Z'){return matchStr.toLocaleLowerCase()}else if(matchStr>='a'&&matchStr<='z'){return matchStr.toLocaleUpperCase()}})},countMatches:function(input,sub){if(this.isEmpty(input)||this.isEmpty(sub)){return 0}var count=0;var index=0;while((index=input.indexOf(sub,index))!=-1){index+=sub.length;count+=1}return count},isAlpha:function(input){return/^[a-z]+$/i.test(input)},isAlphaSpace:function(input){return/^[a-z\s]*$/i.test(input)},isAlphanumeric:function(input){return/^[a-z0-9]+$/i.test(input)},isAlphanumericSpace:function(input){return/^[a-z0-9\s]*$/i.test(input)},isNumeric:function(input){return/^(?:[1-9]\d*|0)(?:\.\d+)?$/.test(input)},isDecimal:function(input){return/^[-+]?(?:0|[1-9]\d*)\.\d+$/.test(input)},isNegativeDecimal:function(input){return/^\-(?:0|[1-9]\d*)\.\d+$/.test(input)},isPositiveDecimal:function(input){return/^\+?(?:0|[1-9]\d*)\.\d+$/.test(input)},isInteger:function(input){return/^[-+]?(?:0|[1-9]\d*)$/.test(input)},isPositiveInteger:function(input){return/^\+?(?:0|[1-9]\d*)$/.test(input)},isNegativeInteger:function(input){return/^\-(?:0|[1-9]\d*)$/.test(input)},isNumericSpace:function(input){return/^[\d\s]*$/.test(input)},isWhitespace:function(input){return/^\s*$/.test(input)},isAllLowerCase:function(input){return/^[a-z]+$/.test(input)},isAllUpperCase:function(input){return/^[A-Z]+$/.test(input)},defaultString:function(input,defaultStr){return input==null?defaultStr:input},defaultIfBlank:function(input,defaultStr){return this.isBlank(input)?defaultStr:input},defaultIfEmpty:function(input,defaultStr){return this.isEmpty(input)?defaultStr:input},reverse:function(input){if(this.isBlank(input)){input}return input.split("").reverse().join("")},removeSpecialCharacter:function(input){return input.replace(/[!-/:-@\[-`{-~]/g,"")},isSpecialCharacterAlphanumeric:function(input){return/^[!-~]+$/.test(input)},format:function(message,arr){return message.replace(/{(\d+)}/g,function(matchStr,group1){return arr[group1]})},compressRepeatedStr:function(input,ignoreCase){var pattern=new RegExp("([a-z])\\1+",ignoreCase?"ig":"g");return result=input.replace(pattern,function(matchStr,group1){return matchStr.length+group1})},isChinese:function(input){return/^[\u4E00-\u9FA5]+$/.test(input)},removeChinese:function(input){return input.replace(/[\u4E00-\u9FA5]+/gm,"")},escapeMetacharacter:function(input){var metacharacter="^$()*+.[]|\\-?{}";if(metacharacter.indexOf(input)>=0){input="\\"+input}return input},escapeMetacharacterOfStr:function(input){return input.replace(/[-$^()*+.\[\]|\\?{}]/gm,"\\$&")},chineseToUnicode:function(input){return input.replace(/[\u4E00-\u9FA5]/g,function(matchStr){return "\\u"+matchStr.charCodeAt(0).toString(16)})},isNest:function(rule,str){if(!(rule&&str)){return false}var keys=[];var values=[];for(var key in rule){if(rule.hasOwnProperty(key)){keys.push(key);values.push(rule[key])}}var chs=str.split("");var len=chs.length;var stack=[];for(var i=0;i<len;i+=1){if(Bee.ArrayUtils.inArray(keys,chs[i])){stack.push(rule[chs[i]])}else{if(chs[i]===stack[stack.length-1]){stack.pop()}else if(Bee.ArrayUtils.inArray(values,chs[i])){return false}}}return stack.length===0}};Bee.ObjectUtils={};Bee.IdCardUtils={idCardRegex:{IDCARD_18_SIMPLE_PATTERN:/^(?:1[1-5]|2[1-3]|3[1-7]|4[1-6]|5[0-4]|6[1-5])\d{4}(?:1[89]|20)\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}(?:\d|[xX])$/,IDCARD_15_SIMPLE_PATTERN:/^(?:1[1-5]|2[1-3]|3[1-7]|4[1-6]|5[0-4]|6[1-5])\d{4}\d{2}(?:0[1-9]|1[0-2])(?:0[1-9]|[12]\d|3[01])\d{3}$/},isSimpleIdCard18:function(idCard){return this.idCardRegex.IDCARD_18_SIMPLE_PATTERN.test(idCard)},isSimpleIdCard15:function(idCard){return this.idCardRegex.IDCARD_18_SIMPLE_PATTERN.test(idCard)},checkCode:function(idCard){var multiplier=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];var idDatas=idCard.split("");var len=17;var sum=0;for(var i=0;i<len;i+=1){sum+=idDatas[i]*multiplier[i]}var remainder=sum%11;var checkCodeArr=['1','0','X','9','8','7','6','5','4','3','2'];var checkCode=checkCodeArr[remainder];return checkCode===idCard[17]},isIdCard18:function(idCard){if(this.isSimpleIdCard18(idCard)){var dateStr=idCard.substr(6,8);var dateStrNew=dateStr.replace(/(\d{4})(\d{2})(\d{2})/,"$1/$2/$3");var dateObj=new Date(dateStrNew);var month=dateObj.getMonth()+1;if(parseInt(dateStr.substr(4,2))===month){return this.checkCode(idCard)}}return false},getPersonInfo18:function(idCard){var age=0;var birthday='';var address='';var sex='';address=Bee.areas[idCard.substr(0,2)+'0000']+' '+Bee.areas[idCard.substr(0,4)+'00']+' '+Bee.areas[idCard.substr(0,6)];sex=(idCard.substr(16,1)%2===0)?'女':'男';birthday=idCard.substr(6,8).replace(/(\d{4})(\d{2})(\d{2})/,'$1年$2月$3日');age=new Date().getFullYear()-idCard.substr(6,4)+1;var person={'address':address,'sex':sex,'birthday':birthday,'age':age};return person}};Bee.ArrayUtils={getMaxValue:function(arr){return Math.max.apply(Math,arr)},getMinValue:function(arr){return Math.min.apply(Math,arr)},inArray:function(arr,ele){var len=arr.length;for(var i=0;i<len;i+=1){if(ele===arr[i]){return true}}return false}};Bee.DateUtils={patterns:{PATTERN_ERA:'G',PATTERN_YEAR:'y',PATTERN_MONTH:'M',PATTERN_DAY_OF_MONTH:'d',PATTERN_HOUR_OF_DAY1:'k',PATTERN_HOUR_OF_DAY0:'H',PATTERN_MINUTE:'m',PATTERN_SECOND:'s',PATTERN_MILLISECOND:'S',PATTERN_DAY_OF_WEEK:'E',PATTERN_DAY_OF_YEAR:'D',PATTERN_DAY_OF_WEEK_IN_MONTH:'F',PATTERN_WEEK_OF_YEAR:'w',PATTERN_WEEK_OF_MONTH:'W',PATTERN_AM_PM:'a',PATTERN_HOUR1:'h',PATTERN_HOUR0:'K',PATTERN_ZONE_NAME:'z',PATTERN_ZONE_VALUE:'Z',PATTERN_WEEK_YEAR:'Y',PATTERN_ISO_DAY_OF_WEEK:'u',PATTERN_ISO_ZONE:'X'},week:{'ch':{"0":"\u65e5","1":"\u4e00","2":"\u4e8c","3":"\u4e09","4":"\u56db","5":"\u4e94","6":"\u516d"},'en':{"0":"Sunday","1":"Monday","2":"Tuesday","3":"Wednesday","4":"Thursday","5":"Friday","6":"Saturday"}},getCurrentTime:function(){var today=new Date();var year=today.getFullYear();var month=today.getMonth()+1;var day=today.getDate();var hours=today.getHours();var minutes=today.getMinutes();var seconds=today.getSeconds();var timeString=year+"-"+month+"-"+day+" "+hours+":"+minutes+":"+seconds;return timeString},compareTime:function(time1,time2){var d1=time1;var d2=time2;if((typeof d1)==="string"){d1=new Date(Date.parse(d1.replace(/-/g,"/")))}if((typeof d2)==="string"){d2=new Date(Date.parse(d2.replace(/-/g,"/")))}var t1=d1.getTime();var t2=d2.getTime();if(t1===t2){return 0}else if(t1>t2){return 1}return -1},isLeapYear:function(year){return((year%4===0&&year%100!==0)||year%400===0)},getDaysOfMonth:function(year,month){return[31,(this.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31][month]},getDaysOfMonth2:function(year,month){month=parseInt(month)+1;var date=new Date(year,month,0);return date.getDate()},fromToday:function(days){var today=new Date();today.setDate(today.getDate()+days);var date=today.getFullYear()+"-"+(today.getMonth()+1)+"-"+today.getDate();return date},formt:function(dateTime,pattern){var date=new Date(dateTime);if(Bee.StringUtils.isBlank(pattern)){return date.toLocaleString()}return pattern.replace(/([a-z])\1*/ig,function(matchStr,group1){var replacement="";switch(group1){case Bee.DateUtils.patterns.PATTERN_ERA:break;case Bee.DateUtils.patterns.PATTERN_WEEK_YEAR:case Bee.DateUtils.patterns.PATTERN_YEAR:replacement=date.getFullYear();break;case Bee.DateUtils.patterns.PATTERN_MONTH:var month=date.getMonth()+1;replacement=(month<10&&matchStr.length>=2)?"0"+month:month;break;case Bee.DateUtils.patterns.PATTERN_DAY_OF_MONTH:var days=date.getDate();replacement=(days<10&&matchStr.length>=2)?"0"+days:days;break;case Bee.DateUtils.patterns.PATTERN_HOUR_OF_DAY1:var hours24=date.getHours();replacement=hours24;break;case Bee.DateUtils.patterns.PATTERN_HOUR_OF_DAY0:var hours24=date.getHours();replacement=(hours24<10&&matchStr.length>=2)?"0"+hours24:hours24;break;case Bee.DateUtils.patterns.PATTERN_MINUTE:var minutes=date.getMinutes();replacement=(minutes<10&&matchStr.length>=2)?"0"+minutes:minutes;break;case Bee.DateUtils.patterns.PATTERN_SECOND:var seconds=date.getSeconds();replacement=(seconds<10&&matchStr.length>=2)?"0"+seconds:seconds;break;case Bee.DateUtils.patterns.PATTERN_MILLISECOND:var milliSeconds=date.getMilliseconds();replacement=milliSeconds;break;case Bee.DateUtils.patterns.PATTERN_DAY_OF_WEEK:var day=date.getDay();replacement=Bee.DateUtils.week['ch'][day];break;case Bee.DateUtils.patterns.PATTERN_DAY_OF_YEAR:replacement=Bee.DateUtils.dayOfTheYear(date);break;case Bee.DateUtils.patterns.PATTERN_DAY_OF_WEEK_IN_MONTH:var days=date.getDate();replacement=Math.floor(days/7);break;case Bee.DateUtils.patterns.PATTERN_WEEK_OF_YEAR:var days=Bee.DateUtils.dayOfTheYear(date);replacement=Math.ceil(days/7);break;case Bee.DateUtils.patterns.PATTERN_WEEK_OF_MONTH:var days=date.getDate();replacement=Math.ceil(days/7);break;case Bee.DateUtils.patterns.PATTERN_AM_PM:var hours24=date.getHours();replacement=hours24<12?"\u4e0a\u5348":"\u4e0b\u5348";break;case Bee.DateUtils.patterns.PATTERN_HOUR1:var hours12=date.getHours()%12||12;replacement=(hours12<10&&matchStr.length>=2)?"0"+hours12:hours12;break;case Bee.DateUtils.patterns.PATTERN_HOUR0:var hours12=date.getHours()%12;replacement=hours12;break;case Bee.DateUtils.patterns.PATTERN_ZONE_NAME:replacement=Bee.DateUtils.getZoneNameValue(date)['name'];break;case Bee.DateUtils.patterns.PATTERN_ZONE_VALUE:replacement=Bee.DateUtils.getZoneNameValue(date)['value'];break;case Bee.DateUtils.patterns.PATTERN_ISO_DAY_OF_WEEK:break;case Bee.DateUtils.patterns.PATTERN_ISO_ZONE:break;default:break}return replacement})},dayOfTheYear:function(date){var obj=new Date(date);var year=obj.getFullYear();var month=obj.getMonth();var days=obj.getDate();var daysArr=[31,(this.isLeapYear(year)?29:28),31,30,31,30,31,31,30,31,30,31];for(var i=0;i<month;i+=1){days+=daysArr[i]}return days},getZoneNameValue:function(dateObj){var date=new Date(dateObj);date=new Date(Date.UTC(date.getFullYear(),date.getMonth(),date.getDate()));var arr=date.toString().match(/([A-Z]+)([-+]\d+:?\d+)/);var obj={'name':arr[1],'value':arr[2]};return obj}};Bee.ElementaryArithmeticUtils={operatorPrecedence:{'+':0,'-':0,'*':1,'×':1,'÷':1,'\/':1},operator:{'+':'+','-':'-','*':'*','×':'*','÷':'/','\/':'/'},add:function(operandLeft,operandRight){var operand1=operandLeft.toString();var operand2=operandRight.toString();var decimalPlace1=operand1.indexOf('.')>=0?operand1.split('.')[1].length:0;var decimalPlace2=operand2.indexOf('.')>=0?operand2.split('.')[1].length:0;var multiple=Math.pow(10,Math.max(decimalPlace1,decimalPlace2));return(operandLeft*multiple+operandRight*multiple)/multiple},subtract:function(operandLeft,operandRight){var operand1=operandLeft.toString();var operand2=operandRight.toString();var decimalPlace1=operand1.indexOf('.')>=0?operand1.split('.')[1].length:0;var decimalPlace2=operand2.indexOf('.')>=0?operand2.split('.')[1].length:0;var multiple=Math.pow(10,Math.max(decimalPlace1,decimalPlace2));var decimalPlace=(decimalPlace1>=decimalPlace2)?decimalPlace1:decimalPlace2;return((operandLeft*multiple-operandRight*multiple)/multiple).toFixed(decimalPlace)},multiply:function(operandLeft,operandRight){var operand1=operandLeft.toString();var operand2=operandRight.toString();var decimalPlace1=operand1.indexOf('.')>=0?operand1.split('.')[1].length:0;var decimalPlace2=operand2.indexOf('.')>=0?operand2.split('.')[1].length:0;var multiple1=Math.pow(10,decimalPlace1);var multiple2=Math.pow(10,decimalPlace2);return((operandLeft*multiple1)*(operandRight*multiple2))/Math.pow(10,decimalPlace1+decimalPlace2)},divide:function(operandLeft,operandRight){var operand1=operandLeft.toString();var operand2=operandRight.toString();var decimalPlace1=operand1.indexOf('.')>=0?operand1.split('.')[1].length:0;var decimalPlace2=operand2.indexOf('.')>=0?operand2.split('.')[1].length:0;var multiple1=Math.pow(10,decimalPlace1);var multiple2=Math.pow(10,decimalPlace2);return((operandLeft*multiple1)/(operandRight*multiple2))*Math.pow(10,decimalPlace2-decimalPlace1)},isArithmeticExpression:function(expression){try{expression=expression.replace(/÷/g,'/').replace(/×/g,'*');var regex=/^(?=.*\d)(?!.*(\[\s*\]|\(\s*\)|{\s*}))[-+*\/()[\]\d{}]+$/;if(regex.test(expression)){var result=eval(expression)}else{return false}}catch(e){return false}return true},calculate:function(expression){var value=NaN;if(this.isArithmeticExpression(expression)){value=eval(expression)}return value},infixToPostfixExpression:function(expression){expression=Bee.StringUtils.deleteWhitespace(expression);expression=this.eliminatePositiveOrNegativeSign(expression);var operatorStack=[];var resultStack=[];var elementArr=expression.match(/[-+\/÷*×()]|(?:[1-9]\d*|0)(?:\.\d+)?/g);var size=elementArr.length;for(var i=0;i<size;i+=1){if(Bee.StringUtils.isNumeric(elementArr[i])){resultStack.push(elementArr[i])}else{var operatorStackTopElement=operatorStack.length===0?'':operatorStack[operatorStack.length-1];if(operatorStack.length===0||elementArr[i]==='('||operatorStackTopElement==='('||this.operatorPrecedence[elementArr[i]]>this.operatorPrecedence[operatorStackTopElement]){operatorStack.push(elementArr[i])}else{if(elementArr[i]===')'){for(var index=operatorStack.length-1;index>=0;index-=1){if(operatorStack[index]==='('){operatorStack.pop();break}else{resultStack.push(operatorStack.pop())}}}else{resultStack.push(operatorStack.pop());i-=1;continue}}}}if(operatorStack.length>0){for(var j=operatorStack.length-1;j>=0;j-=1){resultStack.push(operatorStack.pop())}}return resultStack.join(' ')},infixToPrefixExpression:function(expression){expression=Bee.StringUtils.deleteWhitespace(expression);expression=this.eliminatePositiveOrNegativeSign(expression);var operatorStack=[];var resultStack=[];var elementArr=expression.match(/[-+\/÷*×()]|(?:[1-9]\d*|0)(?:\.\d+)?/g);var size=elementArr.length;for(var i=size-1;i>=0;i-=1){if(Bee.StringUtils.isNumeric(elementArr[i])){resultStack.push(elementArr[i])}else{var operatorStackTopElement=operatorStack.length===0?'':operatorStack[operatorStack.length-1];if(operatorStack.length===0||elementArr[i]===')'||operatorStackTopElement===')'||this.operatorPrecedence[elementArr[i]]>=this.operatorPrecedence[operatorStackTopElement]){operatorStack.push(elementArr[i])}else{if(elementArr[i]==='('){for(var index=operatorStack.length-1;index>=0;index-=1){if(operatorStack[index]===')'){operatorStack.pop();break}else{resultStack.push(operatorStack.pop())}}}else{resultStack.push(operatorStack.pop());i+=1;continue}}}}if(operatorStack.length>0){for(var j=operatorStack.length-1;j>=0;j-=1){resultStack.push(operatorStack.pop())}}return resultStack.reverse().join(' ')},eliminatePositiveOrNegativeSign:function(expression){return expression.replace(/(\(|^)([-+])/g,'$10$2')},calculateByPrefixExpression:function(expression){var elementArr=this.infixToPrefixExpression(expression).split(' ');var size=elementArr.length;var resultStack=[];for(var i=size-1;i>=0;i-=1){if(Bee.StringUtils.isNumeric(elementArr[i])){resultStack.push(elementArr[i])}else{var operand1=resultStack.pop();var operand2=resultStack.pop();var result;switch(elementArr[i]){case '+':result=Bee.ElementaryArithmeticUtils.add(operand1,operand2);break;case '-':result=Bee.ElementaryArithmeticUtils.subtract(operand1,operand2);break;case '×':case '*':result=Bee.ElementaryArithmeticUtils.multiply(operand1,operand2);break;case '\/':case '÷':result=Bee.ElementaryArithmeticUtils.divide(operand1,operand2);break;default:result='';alert("The operator 【"+elementArr[i]+"】 is not legal");break}resultStack.push(result)}}return resultStack},calculateByPostfixExpression:function(expression){var elementArr=this.infixToPostfixExpression(expression).split(' ');var size=elementArr.length;var resultStack=[];for(var i=0;i<size;i+=1){if(Bee.StringUtils.isNumeric(elementArr[i])){resultStack.push(elementArr[i])}else{var operand1=resultStack.pop();var operand2=resultStack.pop();var result;switch(elementArr[i]){case '+':result=Bee.ElementaryArithmeticUtils.add(operand2,operand1);break;case '-':result=Bee.ElementaryArithmeticUtils.subtract(operand2,operand1);break;case '×':case '*':result=Bee.ElementaryArithmeticUtils.multiply(operand2,operand1);break;case '\/':case '÷':result=Bee.ElementaryArithmeticUtils.divide(operand2,operand1);break;default:result='';alert("The operator 【"+elementArr[i]+"】 is not legal");break}resultStack.push(result)}}return resultStack},horizontalCalculation:function(expression){expression=Bee.StringUtils.deleteWhitespace(expression);expression=this.eliminatePositiveOrNegativeSign(expression);var result=expression;while(expression.indexOf('(')>=0){expression=expression.replace(/\([^()]+\)/g,function(matchStr){return eval(matchStr)});result+='='+expression}while(expression.indexOf('[')>=0){expression=expression.replace(/\[[^\[\]]+\]/g,function(matchStr){return eval(matchStr)});result+='='+expression}while(expression.indexOf('{')>=0){expression=expression.replace(/\{[^{}]+\}/g,function(matchStr){return eval(matchStr)});result+='='+expression}var pattern=/(?:[1-9]\d*|0)(?:\.\d+)?[*/](?:[1-9]\d*|0)(?:\.\d+)?/;while(expression.indexOf('*')>=0||expression.indexOf('/')>=0){expression=expression.replace(pattern,function(matchStr,index){return eval(matchStr)});result+='='+expression}if(/[-+*/]/.test(expression)){result+='='+eval(expression)}return result},verticalCalculation:function(expression){var result=this.horizontalCalculation(expression);return result.replace(/=/g,"\n$&")}};Bee.RegexUtils={positiveIntegerRange:function(minimum,maximum){},createRegexObjMustExclude:function(input,conditions){var matcherFlag=conditions.matcherFlag;var targetStrArr=conditions.targetStrArr;var length=conditions.length;var ignoreCase=conditions.ignoreCase;var size=targetStrArr.length;var regex=(size==0)?"^":"^(?!.*(?:{0}))";var subPattern="";for(var i=0;i<size;i+=1){targetStrArr[i]=Bee.StringUtils.escapeMetacharacterOfStr(targetStrArr[i]);subPattern+=targetStrArr[i];if(i!=size-1){subPattern+="|"}}regex=Bee.StringUtils.format(regex,[subPattern]);switch(matcherFlag){case '0':regex+="\\d";break;case '1':regex+="[a-zA-Z]";break;case '2':regex+="[a-z]";break;case '3':regex+="[A-Z]";break;case '4':regex+="[!-/:-@\[-`{-~]";break;case '5':regex+="[\u4E00-\u9FA5]";break;case '6':regex+="[a-zA-Z0-9]";break;case '7':regex+="[a-z0-9]";break;case '8':regex+="[A-Z0-9]";break;case '9':regex+="[!-~]";break;case '10':regex+="[0-9\u4E00-\u9FA5]";break;case '11':regex+="[a-z!-/:-@\[-`{-~]";break;case '12':regex+="[A-Z!-/:-@\[-`{-~]";break;case '13':regex+="[a-zA-Z!-/:-@\[-`{-~]";break;case '14':regex+="[a-z\u4E00-\u9FA5]";break;case '15':regex+="[A-Z\u4E00-\u9FA5]";break;case '16':regex+="[a-zA-Z\u4E00-\u9FA5]";break;case '17':regex+="[\u4E00-\u9FA5!-/:-@\[-`{-~]";break;case '18':regex+="[\u4E00-\u9FA5!-~]";break;case '19':regex+="[a-z\u4E00-\u9FA5!-/:-@\[-`{-~]";break;case '20':regex+="[A-Z\u4E00-\u9FA5!-/:-@\[-`{-~]";break;case '100':regex+="[\s\S]";break;default:alert(matcherFlag+":This type is not supported!")}regex+=Bee.StringUtils.isNotBlank(length)?"{"+length+"}":"+";regex+="$";var pattern=new RegExp(regex,ignoreCase?"i":"");return pattern},isPatternMustExclude:function(input,conditions){var pattern=this.createRegexObjMustExclude(input,conditions);return pattern.test(input)},createRegexObjMustContain:function(){var matcherFlag=conditions.matcherFlag;var targetStrArr=conditions.targetStrArr;var length=conditions.length;var ignoreCase=conditions.ignoreCase;var size=targetStrArr.length;var regex="^";var subPattern="";for(var i=0;i<size;i+=1){targetStrArr[i]=Bee.StringUtils.escapeMetacharacterOfStr(targetStrArr[i]);subPattern+="(?=.*"+targetStrArr[i]+")"}regex+=subPattern;switch(matcherFlag){case '0':regex+="\\d";break;case '1':regex+="[a-zA-Z]";break;case '2':regex+="[a-z]";break;case '3':regex+="[A-Z]";break;case '4':regex+="[!-/:-@\[-`{-~]";break;case '5':regex+="[\u4E00-\u9FA5]";break;case '6':regex+="[a-zA-Z0-9]";break;case '7':regex+="[a-z0-9]";break;case '8':regex+="[A-Z0-9]";break;case '9':regex+="[!-~]";break;case '10':regex+="[0-9\u4E00-\u9FA5]";break;case '11':regex+="[a-z!-/:-@\[-`{-~]";break;case '12':regex+="[A-Z!-/:-@\[-`{-~]";break;case '13':regex+="[a-zA-Z!-/:-@\[-`{-~]";break;case '14':regex+="[a-z\u4E00-\u9FA5]";break;case '15':regex+="[A-Z\u4E00-\u9FA5]";break;case '16':regex+="[a-zA-Z\u4E00-\u9FA5]";break;case '17':regex+="[\u4E00-\u9FA5!-/:-@\[-`{-~]";break;case '18':regex+="[\u4E00-\u9FA5!-~]";break;case '19':regex+="[a-z\u4E00-\u9FA5!-/:-@\[-`{-~]";break;case '20':regex+="[A-Z\u4E00-\u9FA5!-/:-@\[-`{-~]";break;case '100':regex+="[\s\S]";break;default:alert(matcherFlag+":This type is not supported!")}regex+=Bee.StringUtils.isNotBlank(length)?"{"+length+"}":"+";regex+="$";var pattern=new RegExp(regex,ignoreCase?"i":"");return pattern},isPatternMustContain:function(input,conditions){var pattern=this.createRegexObjMustContain(input,conditions);return pattern.test(input)}};Bee.UrlUtils={urlToObj:function(url){var regex=/(\w+)=([^&#]*)/igm;var matchStr=null;var obj={};while((matchStr=regex.exec(url))!=null){obj[matchStr[1]]=matchStr[2]}return obj},objToUrl:function(baseUrl,obj){var parameters="";var url="";for(var key in obj){parameters+=key+"="+obj[key]+"&"}parameters=parameters.replace(/&$/,"");if(/\?$/.test(baseUrl)){url=baseUrl+parameters}else{url=baseUrl.replace(/\/?$/,'?')+parameters}return url},parseQueryString:function(url){var obj={};if(url){url=url.replace(/#[^#]*$/,"");var index=url.indexOf("?");if(index!=-1){var queryStr=url.substr(index+1);var marchResult=null;var regex=/(\w+)(=([^&#]+)?)?/g;while((marchResult=regex.exec(queryStr))!=null){if(marchResult[1]in obj){var values=obj[marchResult[1]];if(values instanceof Array){values.push(marchResult[2]?(marchResult[3]?marchResult[3]:""):null);obj[marchResult[1]]=values}else{var arr=[];arr.push(values);arr.push(marchResult[2]?(marchResult[3]?marchResult[3]:""):null);obj[marchResult[1]]=arr}}else{obj[marchResult[1]]=marchResult[2]?(marchResult[3]?marchResult[3]:""):null}}}}return obj}};window['Bee']=Bee})();