工作中常用的JavaScript脚本

1.获取字符串字节长度

 1 function GetStrLenByte(str){
 2     var len=0;
 3     try{
 4         if (str+"" == "undefined" || str == null){
 5                 len=0;
 6         }
 7         else if(str.length==0){
 8             len=0;
 9         }
10         var i;
11         for(i=0;i<str.length;i++){
12             if(str.charCodeAt(i)>128){
13                 len=len+2;
14             }
15             else{
16                 len=len+1;
17             }
18         }
19     }
20     catch(Exception Obj0){
21     }
22 
23     return len;
24 
25 }

2.去处字符串前后空格

 1 function Trim(str){
 2         if (str+"" == "undefined" || str == null){
 3                 return "";
 4         }
 5         else if(str.length==0){
 6             return "";
 7         }
 8         var i=0;
 9         while( str.charAt(i)==‘ ‘){
10                 i++;
11                 if(i>=str.length){
12                     break;
13                 }
14         }
15         var j=str.length-1;
16         while( str.charAt(j)==‘ ‘){
17                 j--;
18                 if(j<0){
19                     break;
20                 }
21         }
22         if ( j<i )
23             return "";
24         else
25             return str.substring(i,j+1);
26 
27 }

3 检查输入参数是否全为数字

 1 function CheckNumber(str){
 2     var rc=true;
 3     if (str+"" == "undefined" || str == null){
 4         rc=false;
 5     } else if(str.length==0){
 6     rc=false;
 7     } else {
 8     for(i=0;i<str.length;i++){
 9         if(str.charAt(i)<‘0‘ || str.charAt(i)>‘9‘){
10             rc=false;
11             break;
12         }
13     }
14     }
15     return rc;
16 }

4. 检查输入参数是否为整数

 1 function CheckInteger(str){
 2     var rc=true;
 3     if (str+"" == "undefined" || str == null){
 4     rc=false;
 5     } else{
 6     for(i=0;i<str.length;i++){
 7             if(i==0 && str.charAt(i)==‘-‘){
 8                 continue;
 9             }
10             if(str.charAt(i)<‘0‘ || str.charAt(i)>‘9‘){
11                 rc=false;
12                 break;
13             }
14     }
15     }
16     return rc;
17 }

5.检查输入参数是否为合法的email地址

  1 function CheckEmail(str){
  2     var CHAR_LETTER_NUMERIC=1;
  3     var CHAR_UNDERLINE=2;
  4     var CHAR_DOT=3;
  5     var CHAR_AT=4;
  6     var CHAR_DIVIDE=5;
  7     var CHAR_END=6;
  8     var CHAR_OTHER=7;
  9     var DIV_CHAR=‘,‘;
 10 
 11     var rc=true;
 12     if (str+"" == "undefined" || str == null){
 13         rc=false;
 14         return rc;
 15     } else if(str.length==0){
 16         rc=true;
 17         return rc;
 18     }
 19 
 20     var exit_flag=false;
 21     var total_char=str.length;
 22     var pos=0;
 23     var cur_char;
 24     var cur_status=0;
 25     while((pos<=total_char) && (!exit_flag)){
 26         if(pos==total_char){
 27           cur_char=CHAR_END;
 28         }
 29         else if (str.charAt(pos)==‘.‘){
 30           cur_char=CHAR_DOT;
 31         }
 32         else if (str.charAt(pos)==DIV_CHAR){
 33           cur_char=CHAR_DIVIDE;
 34         }
 35         else if(str.charAt(pos)==‘_‘){
 36           cur_char=CHAR_UNDERLINE;
 37         }
 38         else if(str.charAt(pos)==‘@‘){
 39           cur_char=CHAR_AT;
 40         }
 41         else if(((str.charAt(pos)>=‘a‘)&&(str.charAt(pos)<=‘z‘))||((str.charAt(pos)>=‘A‘)&&(str.charAt(pos)<=‘Z‘))||((str.charAt(pos)>=‘0‘)&&(str.charAt(pos)<=‘9‘))||(str.charAt(pos)==‘-‘)){
 42           cur_char=CHAR_LETTER_NUMERIC;
 43         }
 44         else{
 45           cur_char=CHAR_OTHER;
 46         }
 47         switch (cur_status){
 48           case -1://error
 49             rc=false;
 50             exit_flag=true;
 51             break;
 52 
 53           case 0://初始状态
 54             if((cur_char==CHAR_LETTER_NUMERIC)||(cur_char==CHAR_UNDERLINE)||(cur_char==CHAR_DOT)){
 55               cur_status=1;
 56             }
 57             else{
 58               rc=false;
 59               cur_status=-1;
 60             }
 61             break;
 62           case 1://用户名
 63             if((cur_char==CHAR_LETTER_NUMERIC)||(cur_char==CHAR_UNDERLINE)||(cur_char==CHAR_DOT)){
 64               cur_status=1;
 65             }
 66             else if(cur_char==CHAR_AT){
 67               cur_status=2;
 68             }
 69             else{
 70               rc=false;
 71               cur_status=-1;
 72             }
 73             break;
 74           case 2://@
 75             if(cur_char==CHAR_LETTER_NUMERIC){
 76               cur_status=6;
 77             }
 78             else{
 79               rc=false;
 80               cur_status=-1;
 81             }
 82             break;
 83 
 84           case 6://"."
 85             if(cur_char==CHAR_LETTER_NUMERIC){
 86               cur_status=6;
 87             }
 88             else if(cur_char==CHAR_DOT){
 89               cur_status=3;
 90             }
 91             else{
 92               rc=false;
 93               cur_status=-1;
 94             }
 95             break;
 96 
 97           case 3://fisrt domain name
 98             if(cur_char==CHAR_LETTER_NUMERIC){
 99               cur_status=4;
100             }
101             else{
102               rc=false;
103               cur_status=-1;
104             }
105             break;
106           case 4://not first domain name
107             if(cur_char==CHAR_LETTER_NUMERIC){
108               cur_status=4;
109             }
110             else if(cur_char==CHAR_DOT){
111               cur_status=3;
112             }
113             else if(cur_char==CHAR_DIVIDE){
114               cur_status=0;
115             }
116             else if(cur_char==CHAR_END){
117               cur_status=5;
118             }
119             else{
120               rc=false;
121               cur_status=-1;
122             }
123             break;
124           case 5://ok
125             rc=true;
126             exit_flag=true;
127             break;
128           default:
129             rc=false;
130             exit_flag=true;
131             break;
132         }
133         pos++;
134     }
135     return rc;
136 }

6.判断一个字符串是否以指定字符串开头

1   function startWith(str,start){
2     try{
3       return (str.substring(0,start.length)==start);
4     }catch(ex){
5       return false;
6     }
7   }

7.判断一个字符串是否以指定字符串结尾

1   function endWith(str,end){
2     try{
3       return (str.substring(str.length-end.length)==end);
4     }catch(ex){
5       return false;
6     }
7   }

8.把两个数值相加, 结果为指定精度的相加结果

 1 // num1: 被加数
 2 // num2: 加数
 3 // float_length:  结果精度(>=0的整数)
 4 function addNumber(num1, num2, float_length) {
 5    var nTemp = 10;
 6    if (float_length==0) {
 7      nTemp = 1;
 8    }
 9   else {
10       nTemp = 10*float_length;
11   }
12 
13     var nSum = new Number(num1)*nTemp + new Number(num2)*nTemp;
14   nSum = nSum/nTemp;
15 
16     var sSum = new String(nSum);
17     var j = sSum.indexOf(".");
18     if (j>=0) {
19         sSum = sSum.substring(0, j+float_length+1);
20         nSum = new Number(sSum);
21     }
22 
23     return nSum;
24 }

9.检查是否为当日以前的合法日期

 1 function IsByPastDate(str1) {
 2     if (str1 + "" == "undefined" || str1 == null){
 3         return false;
 4     }
 5     var y,m,d;
 6     var i;
 7     i = str1.indexOf("-");
 8     if (i == -1 || i == str1.length) { return false; }
 9     y = str1.substring(0, i);
10     str1 = str1.substring(i + 1);
11 
12     i = str1.indexOf("-");
13     if (i == -1 || i == str1.length) { return false; }
14     m = str1.substring(0, i);
15 
16     d = str1.substring(i + 1);
17 
18     return !DateIsLargerThanNow(y,m,d);
19 }
20 
21 //检查日期在当前日期之后
22 function DateIsLargerThanNow(year, month, day){
23     return DateIsLargerThanNow2(year,month,day,(new Date()));
24 }
25 
26 // 检查日期在给定日期之后
27 function DateIsLargerThanNow2(year, month, day, nowdate){
28     var rc=false;
29     if(!CheckDate(year,month,day)){
30         rc=true;
31     } else{
32         var d1=new Date(Eear,month-1,day);
33         var d0=new Date();
34         if(d1.getTime()>d0.getTime()){
35             rc=true;
36         }
37     }
38     return rc;
39 }
40 
41 // 检查输入参数是否为合法的日期
42 function CheckDate(year,month,day){
43     if(!CheckNumber(year)){
44         return false;
45     }
46     if(!CheckNumber(month)){
47         return false;
48     }
49     if(!CheckNumber(day)){
50         return false;
51     }
52     var dat = new Date(year, month - 1, day);
53     if (dat.getMonth() == (month-1)) {
54         return true;
55     } else {
56         return false;
57     }
58 }
59 
60 //检查输入参数是否全为数字
61 function CheckNumber(str){
62     var rc=true;
63     if (str+"" == "undefined" || str == null){
64         rc=false;
65     } else if(str.length==0){
66     rc=false;
67     } else {
68     for(i=0;i<str.length;i++){
69         if(str.charAt(i)<‘0‘ || str.charAt(i)>‘9‘){
70             rc=false;
71             break;
72         }
73     }
74     }
75     return rc;
76 }

10 判断日期是否合法,并转换为2011-11-11的格式

 1     function OnRecordTimeBlur() {
 2         var recordTime = window.event.srcElement.value;
 3         if (recordTime == "")
 4             return;
 5         if (recordTime.length != 8 && recordTime.length != 10) {
 6             window.event.srcElement.focus();
 7             alert(‘日期长度非法!‘);
 8             return;
 9         }
10         if (recordTime.indexOf("-") < 0) {
11             recordTime = recordTime.substring(0, 4) + "-"
12                     + recordTime.substring(4, 6) + "-" + recordTime.substring(6);
13         }
14         var recordTime_year = recordTime.substring(0, 4);
15         var recordTime_month = recordTime.substring(5, 7);
16         var recordTime_day = recordTime.substring(8);
17         if (CheckDate(recordTime_year, recordTime_month, recordTime_day) == false) {
18             window.event.srcElement.focus();
19             alert(‘日期非法!‘);
20             return;
21         } else {
22             window.event.srcElement.value = recordTime;
23         }
24     }

11.输入的起始期间不能大于终止期间

function checkDate() {
        var dateFromStr = document.form1.applyDateFrom.value;
        var dateToStr = document.form1.applyDateTo.value;
        if (dateFromStr == "" || dateToStr == "") {
            return true;
        }
        var dateFrom = parseDate(dateFromStr);
        var dateTo = parseDate(dateToStr);
        if (dateFrom > dateTo) {
            alert(‘起始期间不能大于终止期间‘);
            return false;
        }
        return true;
    }
function parseDate(str) {
        if (str == "") {
            return null;
        }
        year = str.substring(0, 4);
        month = str.substring(5, 7);
        day = str.substring(8, 10);
        return new Date(year, (month - 1), day);
    }

 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。