javascript各种各样的验证方法(正则表达式)
绝对有用,项目中绝对也常用
代码如下:
/**
* 取得字符串的字节长度
*/
代码
1. function strlen(str)
2. {
3. var i;
4. var len;
5.
6. len = 0;
7. for (i=0;i<str.length;i++)
8. {
9. if (str.charCodeAt(i)>255) len+=2; else len++;
10. }
11. return len;
12. }
13.
/*
* 判断是否为数字,是则返回true,否则返回false
*/
代码
1. function f_check_number(obj)
2. {
3. if (/^\d+$/.test(obj.value))
4. {
5. return true;
6. }
7. else
8. {
9. f_alert(obj,”请输入数字”);
10. return false;
11. }
12. }
13.
/*
* 判断是否为自然数,是则返回true,否则返回false
*/
代码
1. function f_check_naturalnumber(obj)
2. {
3. var s = obj.value;
4. if (/^[0-9]+$/.test( s ) && (s > 0))
5. {
6. return true;
7. }
8. else
9. {
10. f_alert(obj,”请输入自然数”);
11. return false;
12. }
13. }
14.
/*
* 判断是否为整数,是则返回true,否则返回false
*/
代码
1. function f_check_integer(obj)
2. {
3. if (/^(\+|-)?\d+$/.test( obj.value ))
4. {
5. return true;
6. }
7. else
8. {
9. f_alert(obj,”请输入整数”);
10. return false;
11. }
12. }
13.
/*
* 判断是否为实数,是则返回true,否则返回false
*/
代码
1. function f_check_float(obj)
2. {
3. if (/^(\+|-)?\d+($|\.\d+$)/.test( obj.value ))
4. {
5. return true;
6. }
7. else
8. {
9. f_alert(obj,”请输入实数”);
10. return false;
11. }
12. }
13.
/*
* 校验数字的长度和精度
*/
代码
1. function f_check_double(obj){
2. var numReg;
3. var value = obj.value;
4. var strValueTemp, strInt, strDec;
5. var dtype = obj.eos_datatype;
6. var pos_dtype = dtype.substring(dtype.indexOf(”(”)+1,dtype.indexOf(”)”)).split(”,”);
7. var len = pos_dtype[0], prec = pos_dtype[1];
8. try
9. {
10. numReg =/[\-]/;
11. strValueTemp = value.replace(numReg, “”);
12. numReg =/[\+]/;
13. strValueTemp = strValueTemp.replace(numReg, “”);
14. //整数
15. if(prec==0){
16. numReg =/[\.]/;
17. if(numReg.test(value) == true){
18. f_alert(obj, “输入必须为整数类型”);
19. return false;
20. }
21. }
22. if(strValueTemp.indexOf(”.”) < 0 ){
23. if(strValueTemp.length >( len – prec)){
24. f_alert(obj, “整数位不能超过”+ (len – prec) +”位”);
25. return false;
26. }
27. }else{
28. strInt = strValueTemp.substr( 0, strValueTemp.indexOf(”.”) );
29. if(strInt.length >( len – prec)){
30. f_alert(obj, “整数位不能超过”+ (len – prec) +”位”);
31. return false;
32. }
33. strDec = strValueTemp.substr( (strValueTemp.indexOf(”.”)+1), strValueTemp.length );
34. if(strDec.length > prec){
35. f_alert(obj, “小数位不能超过”+ prec +”位”);
36. return false;
37. }
38. }
39. return true;
40. }catch(e){
41. alert(”in f_check_double = ” + e);
42. return false;
43. }
44. }
45.
/*
* 校验数字的最小最大值
* 返回bool
*/
代码
1. function f_check_interval(obj)
2. {
3. var value = parseFloat(obj.value);
5. var dtype = obj.eos_datatype;
6. var pos_dtype = dtype.substring(dtype.indexOf(”(”)+1,dtype.indexOf(”)”)).split(”,”);
7.
8. var minLimit = pos_dtype[0];
9. var maxLimit = pos_dtype[1];
10. var minVal = parseFloat(pos_dtype[0]);
11. var maxVal = parseFloat(pos_dtype[1]);
12.
13. if(isNaN(value))
14. {
15. f_alert(obj, “值必须为数字”);
16. return false;
17. }
18. if((isNaN(minVal) && (minLimit != “-”)) || (isNaN(maxVal) && (maxLimit != “+”)))
19. {
20. f_alert(obj, “边界值必须为数字或-、+”);
21. return false;
22. }
23.
24. if(minLimit == “-” && !isNaN(maxVal))
25. {
26. if(value > maxVal)
27. {
28. f_alert(obj, “值不能超过” + maxVal);
29. return false;
30. }
31. }
32.
33. if(!isNaN(minVal) && maxLimit == “+”)
34. {
35. if(value < minVal)
36. {
37. f_alert(obj, “值不能小于” + minVal);
38. return false;
39. }
40. }
41.
42. if(!isNaN(minVal) && !isNaN(maxVal))
43. {
44. if(minVal > maxVal)
45. {
46. f_alert(obj, “起始值” + minVal + “不能大于终止值” + maxVal);
47. }else
48. {
49. if(!(value <= maxVal && value >= minVal))
50. {
51. f_alert(obj, “值应该在” + minVal + “和” + maxVal + “之间”);
52. return false;
53. }
54. }
55. }
56. return true;
57. }
58.
/*
用途:检查输入字符串是否只由汉字组成
如果通过验证返回true,否则返回false
*/
代码
1. function f_check_zh(obj){
2. if (/^[\u4e00-\u9fa5]+$/.test(obj.value)) {
3. return true;
4. }
5. f_alert(obj,”请输入汉字”);
6. return false;
7. }
8.
/*
* 判断是否为小写英文字母,是则返回true,否则返回false
*/
代码
1. function f_check_lowercase(obj)
2. {
3. if (/^[a-z]+$/.test( obj.value ))
4. {
5. return true;
6. }
7. f_alert(obj,”请输入小写英文字母”);
8. return false;
9. }
10.
/*
* 判断是否为大写英文字母,是则返回true,否则返回false
*/
代码
1. function f_check_uppercase(obj)
2. {
3. if (/^[A-Z]+$/.test( obj.value ))
4. {
5. return true;
6. }
7. f_alert(obj,”请输入大写英文字母”);
8. return false;
9. }
10.
/*
* 判断是否为英文字母,是则返回true,否则返回false
*/
代码
1. function f_check_letter(obj)
2. {
3. if (/^[A-Za-z]+$/.test( obj.value ))
4. {
5. return true;
6. }
7. f_alert(obj,”请输入英文字母”);
8. return false;
9. }
10.
/*
用途:检查输入字符串是否只由汉字、字母、数字组成
输入:
value:字符串
返回:
如果通过验证返回true,否则返回false
*/
代码
1. function f_check_ZhOrNumOrLett(obj){ //判断是否是汉字、字母、数字组成
2. var regu = “^[0-9a-zA-Z\u4e00-\u9fa5]+$”;
3. var re = new RegExp(regu);
4. if (re.test( obj.value )) {
5. return true;
6. }
7. f_alert(obj,”请输入汉字、字母或数字”);
8. return false;
9. }
10.
/*
用途:校验ip地址的格式
输入:strIP:ip地址
返回:如果通过验证返回true,否则返回false;
*/
代码
1. function f_check_IP(obj)
2. {
3. var re=/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/; //匹配IP地址的正则表达式
4. if(re.test( obj.value ))
5. {
6. if( RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256) return true;
7. }
8. f_alert(obj,”请输入合法的计算机IP地址”);
9. return false;
10. }
11.
/*
用途:检查输入对象的值是否符合端口号格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/
代码
1. function f_check_port(obj)
2. {
3. if(!f_check_number(obj))
4. return false;
5. if(obj.value < 65536)
6. return true;
7. f_alert(obj,”请输入合法的计算机IP地址端口号”);
8. return false;
9. }
10.
/*
用途:检查输入对象的值是否符合网址格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/
代码
1. function f_check_URL(obj){
2. var myReg = /^((http:[/][/])?\w+([.]\w+|[/]\w*)*)?$/;
3. if(myReg.test( obj.value )) return true;
4. f_alert(obj,”请输入合法的网页地址”);
5. return false;
6. }
7.
/*
用途:检查输入对象的值是否符合E-Mail格式
输入:str 输入的字符串
返回:如果通过验证返回true,否则返回false
*/
代码
1. function f_check_email(obj){
2. var myReg = /^([-_A-Za-z0-9\.]+)@([_A-Za-z0-9]+\.)+[A-Za-z0-9]{2,3}$/;
3. if(myReg.test( obj.value )) return true;
4. f_alert(obj,”请输入合法的电子邮件地址”);
5. return false;
6. }