jquery validation验证身份证号、护照、电话号码、email

<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type"content="text/html; charset=gb2312"/>

<!-- TemplateBeginEditable name="doctitle"-->

<title>无标题文档</title>

<script src="lib/jquery.js"type="text/javascript"></script>

<script src="lib/jquery.validate.js"type="text/javascript"></script>

<script src="lib/card.js"type="text/javascript"></script>

<script src="lib/validata.js"type="text/javascript"></script>

<style type="text/css">

em.success{

background:url("images/tips_arrow.gif") no-repeat left 0px;

padding-left:16px;

margin-left:2px;

}

em.error{

background:url("images/tips_arrow.gif") no-repeat left -51px;

display:inline;

padding-left:10px;

font-style:normal;

font-size:11px;

margin-left:2px;

font-family:12px/162% Arial, Helvetica, sans-serif;

}

</style>

</head>

<body>

<formclass="cmsform"javascript string">"commentForm"method="get"action="">

<p>

<labelfor="cusername">姓名</label><em>*</em>

<input javascript string">"cusername"name="username"size="25"/>

</p>

<p>

<labelfor="cemail">电子邮件</label><em>*</em>

<input javascript string">"cemail"name="email"size="25"/>

</p>

<p>

<labelfor="card">身份证号</label><em>*</em>

<input javascript string">"card"name="card"size="25"/>

</p>

<p>

<labelfor="passport">护照编号</label><em>*</em>

<input javascript string">"passport"name="passport"size="25"/>

</p>

<p>

<labelfor="phone">电话号码</label><em>*</em>

<input javascript string">"phone"name="phone"size="25"/>

</p>

</form>

</body>

</html>

validata.js

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

$(function(){

$.validator.setDefaults({

submitHandler:function(form) {

form.submit();

}

});

// 字符验证

jQuery.validator.addMethod("stringCheck",function(value, element) {

returnthis.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value);

},"只能包括中文字、英文字母、数字和下划线");

// 中文字两个字节

jQuery.validator.addMethod("byteRangeLength",function(value, element, param) {

varlength = value.length;

for(vari = 0; i < value.length; i++){

if(value.charCodeAt(i) > 127){

length++;

}

}

returnthis.optional(element) || ( length >= param[0] && length <= param[1] );

},"请确保输入的值在3-15个字节之间(一个中文字算2个字节)");

// 身份证号码验证

jQuery.validator.addMethod("isIdCardNo",function(value, element) {

returnthis.optional(element) || idCardNoUtil.checkIdCardNo(value);

},"请正确输入您的身份证号码");

//护照编号验证

jQuery.validator.addMethod("passport",function(value, element) {

returnthis.optional(element) || checknumber(value);

},"请正确输入您的护照编号");

// 手机号码验证

jQuery.validator.addMethod("isMobile",function(value, element) {

varlength = value.length;

varmobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;

returnthis.optional(element) || (length == 11 && mobile.test(value));

},"请正确填写您的手机号码");

// 电话号码验证

jQuery.validator.addMethod("isTel",function(value, element) {

vartel = /^\d{3,4}-?\d{7,9}$/;//电话号码格式010-12345678

returnthis.optional(element) || (tel.test(value));

},"请正确填写您的电话号码");

// 联系电话(手机/电话皆可)验证

jQuery.validator.addMethod("isPhone",function(value,element) {

varlength = value.length;

varmobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;

vartel = /^\d{3,4}-?\d{7,9}$/;

returnthis.optional(element) || (tel.test(value) || mobile.test(value));

},"请正确填写您的联系电话");

// 邮政编码验证

jQuery.validator.addMethod("isZipCode",function(value, element) {

vartel = /^[0-9]{6}$/;

returnthis.optional(element) || (tel.test(value));

},"请正确填写您的邮政编码");

//开始验证

$('#commentForm').validate({

rules: {

username: {

required:true,

stringCheck:true,

byteRangeLength:[3,15]

},

email:{

required:true,

email:true

},

phone:{

required:true,

isMobile:true

},

address:{

required:true,

stringCheck:true,

byteRangeLength:[3,100]

},

card:{

required:true,

isIdCardNo:true

},

passport:{

required:true,

passport:true

}

},

messages:{

username: {

required:"请填写用户名",

stringCheck:"用户名只能包括中文字、英文字母、数字和下划线",

byteRangeLength:"用户名必须在3-15个字符之间(一个中文字算2个字符)"

},

email:{

required:"<font color=red>请输入一个Email地址</fond>",

email:"请输入一个有效的Email地址"

},

phone:{

required:"请输入您的联系电话",

isPhone:"请输入一个有效的联系电话"

},

address:{

required:"请输入您的联系地址",

stringCheck:"请正确输入您的联系地址",

byteRangeLength:"请详实您的联系地址以便于我们联系您"

},

card:{

required:"请输入身份证号",

isIdCardNo:"请输入正确的身份证号"

},

passport:{

required:"请输入护照编号",

passport:"请输入正确的护照编号"

}

},

focusInvalid:false,

onkeyup:false,

errorPlacement:function(error, element) {

error.appendTo( element.parent());

},

errorElement:"em",

error:function(label){label.text(" ").addClass("error");}

});

})

card.js

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

varidCardNoUtil = {

provinceAndCitys: {11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",

31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",

45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",

65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"},

powers: ["7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2"],

parityBit: ["1","0","X","9","8","7","6","5","4","3","2"],

genders: {male:"男",female:"女"},

checkAddressCode:function(addressCode){

varcheck = /^[1-9]\d{5}$/.test(addressCode);

if(!check)returnfalse;

if(idCardNoUtil.provinceAndCitys[parseInt(addressCode.substring(0,2))]){

returntrue;

}else{

returnfalse;

}

},

checkBirthDayCode:function(birDayCode){

varcheck = /^[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))$/.test(birDayCode);

if(!check)returnfalse;

varyyyy = parseInt(birDayCode.substring(0,4),10);

varmm = parseInt(birDayCode.substring(4,6),10);

vardd = parseInt(birDayCode.substring(6),10);

varxdata =newDate(yyyy,mm-1,dd);

if(xdata >newDate()){

returnfalse;//生日不能大于当前日期

}elseif( ( xdata.getFullYear() == yyyy ) && ( xdata.getMonth () == mm - 1 ) && ( xdata.getDate() == dd ) ){

returntrue;

}else{

returnfalse;

}

},

getParityBit:function(idCardNo){

varid17 = idCardNo.substring(0,17);

varpower = 0;

for(vari=0;i<17;i++){

power += parseInt(id17.charAt(i),10) * parseInt(idCardNoUtil.powers[i]);

}

varmod = power % 11;

returnidCardNoUtil.parityBit[mod];

},

checkParityBit:function(idCardNo){

varparityBit = idCardNo.charAt(17).toUpperCase();

if(idCardNoUtil.getParityBit(idCardNo) == parityBit){

returntrue;

}else{

returnfalse;

}

},

checkIdCardNo:function(idCardNo){

//15位和18位身份证号码的基本校验

varcheck = /^\d{15}|(\d{17}(\d|x|X))$/.test(idCardNo);

if(!check)returnfalse;

//判断长度为15位或18位

if(idCardNo.length==15){

returnidCardNoUtil.check15IdCardNo(idCardNo);

}elseif(idCardNo.length==18){

returnidCardNoUtil.check18IdCardNo(idCardNo);

}else{

returnfalse;

}

},

//校验15位的身份证号码

check15IdCardNo:function(idCardNo){

//15位身份证号码的基本校验

varcheck = /^[1-9]\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}$/.test(idCardNo);

if(!check)returnfalse;

//校验地址码

varaddressCode = idCardNo.substring(0,6);

check = idCardNoUtil.checkAddressCode(addressCode);

if(!check)returnfalse;

varbirDayCode ='19'+ idCardNo.substring(6,12);

//校验日期码

returnidCardNoUtil.checkBirthDayCode(birDayCode);

},

//校验18位的身份证号码

check18IdCardNo:function(idCardNo){

//18位身份证号码的基本格式校验

varcheck = /^[1-9]\d{5}[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}(\d|x|X)$/.test(idCardNo);

if(!check)returnfalse;

//校验地址码

varaddressCode = idCardNo.substring(0,6);

check = idCardNoUtil.checkAddressCode(addressCode);

if(!check)returnfalse;

//校验日期码

varbirDayCode = idCardNo.substring(6,14);

check = idCardNoUtil.checkBirthDayCode(birDayCode);

if(!check)returnfalse;

//验证校检码

returnidCardNoUtil.checkParityBit(idCardNo);

},

formateDateCN:function(day){

varyyyy =day.substring(0,4);

varmm = day.substring(4,6);

vardd = day.substring(6);

returnyyyy +'-'+ mm +'-'+ dd;

},

//获取信息

getIdCardInfo:function(idCardNo){

varidCardInfo = {

gender:"",//性别

birthday:""// 出生日期(yyyy-mm-dd)

};

if(idCardNo.length==15){

varaday ='19'+ idCardNo.substring(6,12);

idCardInfo.birthday=idCardNoUtil.formateDateCN(aday);

if(parseInt(idCardNo.charAt(14))%2==0){

idCardInfo.gender=idCardNoUtil.genders.female;

}else{

idCardInfo.gender=idCardNoUtil.genders.male;

}

}elseif(idCardNo.length==18){

varaday = idCardNo.substring(6,14);

idCardInfo.birthday = idCardNoUtil.formateDateCN(aday);

if(parseInt(idCardNo.charAt(16))%2==0){

idCardInfo.gender = idCardNoUtil.genders.female;

}else{

idCardInfo.gender = idCardNoUtil.genders.male;

}

}

returnidCardInfo;

},

getId15:function(idCardNo){

if(idCardNo.length==15){

returnidCardNo;

}elseif(idCardNo.length==18){

returnidCardNo.substring(0,6) + idCardNo.substring(8,17);

}else{

returnnull;

}

},

getId18:function(idCardNo){

if(idCardNo.length==15){

varid17 = idCardNo.substring(0,6) +'19'+ idCardNo.substring(6);

<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type"content="text/html; charset=gb2312"/>

<!-- TemplateBeginEditable name="doctitle"-->

<title>无标题文档</title>

<script src="lib/jquery.js"type="text/javascript"></script>

<script src="lib/jquery.validate.js"type="text/javascript"></script>

<script src="lib/card.js"type="text/javascript"></script>

<script src="lib/validata.js"type="text/javascript"></script>

<style type="text/css">

em.success{

background:url("images/tips_arrow.gif") no-repeat left 0px;

padding-left:16px;

margin-left:2px;

}

em.error{

background:url("images/tips_arrow.gif") no-repeat left -51px;

display:inline;

padding-left:10px;

font-style:normal;

font-size:11px;

margin-left:2px;

font-family:12px/162% Arial, Helvetica, sans-serif;

}

</style>

</head>

<body>

<formclass="cmsform"javascript string">"commentForm"method="get"action="">

<p>

<labelfor="cusername">姓名</label><em>*</em>

<input javascript string">"cusername"name="username"size="25"/>

</p>

<p>

<labelfor="cemail">电子邮件</label><em>*</em>

<input javascript string">"cemail"name="email"size="25"/>

</p>

<p>

<labelfor="card">身份证号</label><em>*</em>

<input javascript string">"card"name="card"size="25"/>

</p>

<p>

<labelfor="passport">护照编号</label><em>*</em>

<input javascript string">"passport"name="passport"size="25"/>

</p>

<p>

<labelfor="phone">电话号码</label><em>*</em>

<input javascript string">"phone"name="phone"size="25"/>

</p>

</form>

</body>

</html>



validata.js

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

$(function(){

$.validator.setDefaults({

submitHandler:function(form) {

form.submit();

}

});

// 字符验证

jQuery.validator.addMethod("stringCheck",function(value, element) {

returnthis.optional(element) || /^[\u0391-\uFFE5\w]+$/.test(value);

},"只能包括中文字、英文字母、数字和下划线");

// 中文字两个字节

jQuery.validator.addMethod("byteRangeLength",function(value, element, param) {

varlength = value.length;

for(vari = 0; i < value.length; i++){

if(value.charCodeAt(i) > 127){

length++;

}

}

returnthis.optional(element) || ( length >= param[0] && length <= param[1] );

},"请确保输入的值在3-15个字节之间(一个中文字算2个字节)");

// 身份证号码验证

jQuery.validator.addMethod("isIdCardNo",function(value, element) {

returnthis.optional(element) || idCardNoUtil.checkIdCardNo(value);

},"请正确输入您的身份证号码");

//护照编号验证

jQuery.validator.addMethod("passport",function(value, element) {

returnthis.optional(element) || checknumber(value);

},"请正确输入您的护照编号");

// 手机号码验证

jQuery.validator.addMethod("isMobile",function(value, element) {

varlength = value.length;

varmobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;

returnthis.optional(element) || (length == 11 && mobile.test(value));

},"请正确填写您的手机号码");

// 电话号码验证

jQuery.validator.addMethod("isTel",function(value, element) {

vartel = /^\d{3,4}-?\d{7,9}$/;//电话号码格式010-12345678

returnthis.optional(element) || (tel.test(value));

},"请正确填写您的电话号码");

// 联系电话(手机/电话皆可)验证

jQuery.validator.addMethod("isPhone",function(value,element) {

varlength = value.length;

varmobile = /^(((13[0-9]{1})|(15[0-9]{1}))+\d{8})$/;

vartel = /^\d{3,4}-?\d{7,9}$/;

returnthis.optional(element) || (tel.test(value) || mobile.test(value));

},"请正确填写您的联系电话");

// 邮政编码验证

jQuery.validator.addMethod("isZipCode",function(value, element) {

vartel = /^[0-9]{6}$/;

returnthis.optional(element) || (tel.test(value));

},"请正确填写您的邮政编码");

//开始验证

$('#commentForm').validate({

rules: {

username: {

required:true,

stringCheck:true,

byteRangeLength:[3,15]

},

email:{

required:true,

email:true

},

phone:{

required:true,

isMobile:true

},

address:{

required:true,

stringCheck:true,

byteRangeLength:[3,100]

},

card:{

required:true,

isIdCardNo:true

},

passport:{

required:true,

passport:true

}

},

messages:{

username: {

required:"请填写用户名",

stringCheck:"用户名只能包括中文字、英文字母、数字和下划线",

byteRangeLength:"用户名必须在3-15个字符之间(一个中文字算2个字符)"

},

email:{

required:"<font color=red>请输入一个Email地址</fond>",

email:"请输入一个有效的Email地址"

},

phone:{

required:"请输入您的联系电话",

isPhone:"请输入一个有效的联系电话"

},

address:{

required:"请输入您的联系地址",

stringCheck:"请正确输入您的联系地址",

byteRangeLength:"请详实您的联系地址以便于我们联系您"

},

card:{

required:"请输入身份证号",

isIdCardNo:"请输入正确的身份证号"

},

passport:{

required:"请输入护照编号",

passport:"请输入正确的护照编号"

}

},

focusInvalid:false,

onkeyup:false,

errorPlacement:function(error, element) {

error.appendTo( element.parent());

},

errorElement:"em",

error:function(label){label.text(" ").addClass("error");}

});

})



card.js

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

varidCardNoUtil = {

provinceAndCitys: {11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",

31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",

45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",

65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"},

powers: ["7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2"],

parityBit: ["1","0","X","9","8","7","6","5","4","3","2"],

genders: {male:"男",female:"女"},

checkAddressCode:function(addressCode){

varcheck = /^[1-9]\d{5}$/.test(addressCode);

if(!check)returnfalse;

if(idCardNoUtil.provinceAndCitys[parseInt(addressCode.substring(0,2))]){

returntrue;

}else{

returnfalse;

}

},

checkBirthDayCode:function(birDayCode){

varcheck = /^[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))$/.test(birDayCode);

if(!check)returnfalse;

varyyyy = parseInt(birDayCode.substring(0,4),10);

varmm = parseInt(birDayCode.substring(4,6),10);

vardd = parseInt(birDayCode.substring(6),10);

varxdata =newDate(yyyy,mm-1,dd);

if(xdata >newDate()){

returnfalse;//生日不能大于当前日期

}elseif( ( xdata.getFullYear() == yyyy ) && ( xdata.getMonth () == mm - 1 ) && ( xdata.getDate() == dd ) ){

returntrue;

}else{

returnfalse;

}

},

getParityBit:function(idCardNo){

varid17 = idCardNo.substring(0,17);

varpower = 0;

for(vari=0;i<17;i++){

power += parseInt(id17.charAt(i),10) * parseInt(idCardNoUtil.powers[i]);

}

varmod = power % 11;

returnidCardNoUtil.parityBit[mod];

},

checkParityBit:function(idCardNo){

varparityBit = idCardNo.charAt(17).toUpperCase();

if(idCardNoUtil.getParityBit(idCardNo) == parityBit){

returntrue;

}else{

returnfalse;

}

},

checkIdCardNo:function(idCardNo){

//15位和18位身份证号码的基本校验

varcheck = /^\d{15}|(\d{17}(\d|x|X))$/.test(idCardNo);

if(!check)returnfalse;

//判断长度为15位或18位

if(idCardNo.length==15){

returnidCardNoUtil.check15IdCardNo(idCardNo);

}elseif(idCardNo.length==18){

returnidCardNoUtil.check18IdCardNo(idCardNo);

}else{

returnfalse;

}

},

//校验15位的身份证号码

check15IdCardNo:function(idCardNo){

//15位身份证号码的基本校验

varcheck = /^[1-9]\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}$/.test(idCardNo);

if(!check)returnfalse;

//校验地址码

varaddressCode = idCardNo.substring(0,6);

check = idCardNoUtil.checkAddressCode(addressCode);

if(!check)returnfalse;

varbirDayCode ='19'+ idCardNo.substring(6,12);

//校验日期码

returnidCardNoUtil.checkBirthDayCode(birDayCode);

},

//校验18位的身份证号码

check18IdCardNo:function(idCardNo){

//18位身份证号码的基本格式校验

varcheck = /^[1-9]\d{5}[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}(\d|x|X)$/.test(idCardNo);

if(!check)returnfalse;

//校验地址码

varaddressCode = idCardNo.substring(0,6);

check = idCardNoUtil.checkAddressCode(addressCode);

if(!check)returnfalse;

//校验日期码

varbirDayCode = idCardNo.substring(6,14);

check = idCardNoUtil.checkBirthDayCode(birDayCode);

if(!check)returnfalse;

//验证校检码

returnidCardNoUtil.checkParityBit(idCardNo);

},

formateDateCN:function(day){

varyyyy =day.substring(0,4);

varmm = day.substring(4,6);

vardd = day.substring(6);

returnyyyy +'-'+ mm +'-'+ dd;

},

//获取信息

getIdCardInfo:function(idCardNo){

varidCardInfo = {

gender:"",//性别

birthday:""// 出生日期(yyyy-mm-dd)

};

if(idCardNo.length==15){

varaday ='19'+ idCardNo.substring(6,12);

idCardInfo.birthday=idCardNoUtil.formateDateCN(aday);

if(parseInt(idCardNo.charAt(14))%2==0){

idCardInfo.gender=idCardNoUtil.genders.female;

}else{

idCardInfo.gender=idCardNoUtil.genders.male;

}

}elseif(idCardNo.length==18){

varaday = idCardNo.substring(6,14);

idCardInfo.birthday = idCardNoUtil.formateDateCN(aday);

if(parseInt(idCardNo.charAt(16))%2==0){

idCardInfo.gender = idCardNoUtil.genders.female;

}else{

idCardInfo.gender = idCardNoUtil.genders.male;

}

}

returnidCardInfo;

},

getId15:function(idCardNo){

if(idCardNo.length==15){

returnidCardNo;

}elseif(idCardNo.length==18){

returnidCardNo.substring(0,6) + idCardNo.substring(8,17);

}else{

returnnull;

}

},

getId18:function(idCardNo){

if(idCardNo.length==15){

varid17 = idCardNo.substring(0,6) +'19'+ idCardNo.substring(6);

varparityBit = idCardNoUtil.getParityBit(id17);

returnid17 + parityBit;

}elseif(idCardNo.length==18){

returnidCardNo;

}else{

returnnull;

}

}

};

//验证护照是否正确

functionchecknumber(number){

varstr=number;

//在JavaScript中,正则表达式只能使用"/"开头和结束,不能使用双引号

varExpression=/(P\d{7})|(G\d{8})/;

varobjExp=newRegExp(Expression);

if(objExp.test(str)==true){

returntrue;

}else{

returnfalse;

}

};

varparityBit = idCardNoUtil.getParityBit(id17);

returnid17 + parityBit;

}elseif(idCardNo.length==18){

returnidCardNo;

}else{

returnnull;

}

}

};

//验证护照是否正确

functionchecknumber(number){

varstr=number;

//在JavaScript中,正则表达式只能使用"/"开头和结束,不能使用双引号

varExpression=/(P\d{7})|(G\d{8})/;

varobjExp=newRegExp(Expression);

if(objExp.test(str)==true){

returntrue;

}else{

returnfalse;

}

};