1.对字符串str 的处理方法
str.length
|
表示字符串的长度
|
str.charAt(i)
|
获取字符串中第 i 个字符,i 从 0 开始
|
str.indexOf(c)
|
查找某个字符的位置,返回值是该字符第一次出现的位置,位置编号从0 开始。如果没有找到,则返回-1
|
str.substring(index1,index2)
|
获取子串,第一个参数表示开始位置,第二个参数表示结束位置,子串包括第一个参数,不包括第二个参
数。如果只有一个参数,则获取从该参数开始到字符串结束的子串,此时方法就变成 str.substring(index)。
|
str==另一个字符串
|
判断 str 与另一个字符串是否相同。
|
2、 非空验证
// 验证是否是空
function isNull(str) { if(str.length==0) return true; else return false; }
3、. 字符串长度验证
// 验证是否满足最小长度
function minLength(str,length) { if(str.length>=length) return true; else return false; }
4、// 判断是否满足最大长度
function maxLength(str,length) { if(str.length<=length) return true; else return false; }
5、日期验证
// 判断是否是日期,日期的格式为 1988-1-1
1 function isDate(date) 2 { 3 // 查找分隔符 4 index1 = date.indexOf("-"); 5 // 如果分隔符不存在,则不是合法的时间 6 if(index1 == -1) 7 return false; 8 // 获取时间中的年 9 year = date.substring(0,index1); 10 // 获取时间中的剩下部分 11 date = date.substring(index1+1); 12 // 查找第二个分隔符 13 index1 = date.indexOf("-"); 14 // 如果不存在第二个分隔符,则不是合法的时间 15 if(index1 == -1) 16 return false; 17 // 获取时间中的月份 18 month = date.substring(0,index1); 19 // 获取时间中的日 20 day = date.substring(index1+1); 21 // 判断是否是数字,如果不是则不是合法的时间 22 if(isNumber(year) && isNumber(month) && isNumber(day)) 23 { 24 // 判断基本范围 25 if(year<1900 || year>9999 || month<1 || month >12 || day<1) 26 return false; 27 // 判断 31 天的月 28 if((month==1 || month==3 || month==5 || month==7 29 || month==8 || month==10 || month==12) && day>31) 30 return false; 31 // 判断 30 天的月 32 if((month==4 || month==6 || month==9 || month==11) 33 && day>30) 34 return false; 35 // 如果是 2 月,判断是否为闰年 36 if(month==2) 37 { 38 if(year%400==0 || (year%4==0 && year%100!=0)) 39 { 40 if(day>29) 41 return false; 42 }else 43 { 44 if(day>28) 45 return false; 46 } 47 } 48 } 49 else 50 return false; 51 return true; 52 }
6、数字验证
// 判断是否是整数
1 function isNumber(str) 2 { 3 for(i=0;i<str.length;i++) 4 { 5 // 每一位都是 0~9 的数字,如果是第 1 位,则可以是“-”号 6 if(str.charAt(i)>='0' && str.charAt(i)<='9' 7 || str.charAt(i)=="-" && i==0) 8 continue; 9 else 10 return false; 11 } 12 return true; 13 }
7、E-mail 格式验证
// 判断是否是 E-mail
1 function isEmail(email) 2 { 3 if(email.length==0) 4 return false; 5 index1 = email.indexOf('@'); 6 index2 = email.indexOf('.'); 7 if(index1 < 1 // @符号不存在,或者在第一个位置 8 || index2 < 1 // .符号不存在,或者在第一个位置 9 || index2-index1 <2 // .在@的左边或者相邻 10 || index2+1 == email.length) // .符号后面没有东西 11 return false; 12 else 13 return true; 14 }
正则表达式
正则表达式提供了一种高级的、但不直观的字符串匹配和处理的方法。它描述了一种字符串匹配的模式,可以用来判断一个字符串是否满足某种格式,或者一个字符串是否含有某个子串等。
1. 字符集
字符 | 作用 |
. |
匹配除
以外的任何一个字符
|
[] |
匹配包含在方括号内的任何一个字符
|
^ |
用在方括号中表示匹配除方括号中字符以外的任何字符
|
示例:
.at:匹配以任意字符开头,后面为 at 的字符串,如“cat”、“bat”、“#at”等。
[a-z]:匹配任意一个小写字母(a~z 之间的),如“a”、“c”、“e”等。
[aeiou]:匹配任意一个元音字母。
[a-zA-Z]:匹配任意一个大写或小写字母。
[^a-z]:匹配任何不在 a~z 之间的字符。
2. 重复
正则表达式中用于确定重复次数的字符:
字符 | 作用 |
* |
表示重复 0 次或以上
|
+ |
表示重复 1 次或以上
|
? |
表示重复 0 次或 1 次
|
示例:
[a-zA-Z]*:匹配由任意大小写字母构成的字符串,也可以是空字符串,如“abc”。
[0-9]+:匹配任何由数字构成的字符串,该字符串至少包含一个字符,如“1234”。
[a-z0-9]?:匹配空字符串,或者一个小写字母或数字。
3. 子表达式
正则表达式中子表达式的格式和作用:
字符 | 作用 |
() |
将多个字符作为一个子表达式
|
示例:
(very )*large:匹配“large”、“very large”、“very very large”等。注意 very 后面的空格。
4. 子表达式计数
字符 | 作用 |
{n} |
表示重复 n 次
|
{m,n} |
表示重复 m~n 次
|
{m,} |
表示重复 m 次以上
|
示例:
(very ){1} :匹配“very ”。
(very ){1,3}:匹配“very ”、“very very ”、“very very very ”。
(very ){1,}:匹配由一个或一个以上“very ”构成的字符串
明日计划
学习Javaweb中的设置页面的编码方式