
同上,加以修改
<input type="text" name="y" id="y" /> 年
<input type="text" name="m" id="m" /> 月
<input type="text" name="d" id="d" /> 日
<input type="button" onclick="check()" value="计算" />
您的年龄: <span id="age"></span>
<script type="text/javascript">
function check(){
var _d = documentgetElementById;
var y = _d("y")value;
var m = _d("m")value;
var d = _d("d")value;
var a = _d("age");
if(y==null||m==null||d==null||y==''||m==''||d==''){
alert('请输入年龄');
return false;
}
var bir = new Date(y, m - 1, d);
var now = new Date();
var age_=parseInt((now - bir)/(1000 3600 24 365));
if (age_>18){
ainnerHTML = parseInt((now - bir)/(1000 3600 24 365));
}
else{
alert('你的年龄不到18周岁!');
}
}
</script>
百度不能出来吗?js实现身份z号码验证
以下是根据身份z号码编码规则,使用JS对其进行有效性验证代码IdCard-Validatejs代码如下: /
身份z15位编码规则:dddddd yymmdd xx p
dddddd:地区码
yymmdd: 出生年月日
xx: 顺序类编码,无法确定
p: 性别,奇数为男,偶数为女
<p />
身份z18位编码规则:dddddd yyyymmdd xxx y
dddddd:地区码
yyyymmdd: 出生年月日
xxx:顺序类编码,无法确定,奇数为男,偶数为女
y: 校验码,该位数值可通过前17位计算获得
<p />
18位号码加权因子为(从右到左) Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2,1 ]
验证位 Y = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ]
校验位计算公式:Y_P = mod( ∑(Ai×Wi),11 )
i为身份z号码从右往左数的 218 位; Y_P为脚丫校验码所在校验码数组位置
/
var Wi = [ 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 ];// 加权因子
var ValideCode = [ 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ];// 身份z验证位值10代表X
function IdCardValidate(idCard) {
idCard = trim(idCardreplace(/ /g, ""));
if (idCardlength == 15) {
return isValidityBrithBy15IdCard(idCard);
} else if (idCardlength == 18) {
var a_idCard = idCardsplit("");// 得到身份z数组
if(isValidityBrithBy18IdCard(idCard)&&isTrueValidateCodeBy18IdCard(a_idCard)){
return true;
}else {
return false;
}
} else {
return false;
}
}
/
判断身份z号码为18位时最后的验证位是否正确
@param a_idCard 身份z号码数组
@return
/
function isTrueValidateCodeBy18IdCard(a_idCard) {
var sum = 0; // 声明加权求和变量
if (a_idCard[17]toLowerCase() == 'x') {
a_idCard[17] = 10;// 将最后位为x的验证码替换为10方便后续 *** 作
}
for ( var i = 0; i < 17; i++) {
sum += Wi[i] a_idCard[i];// 加权求和
}
valCodePosition = sum % 11;// 得到验证码所位置
if (a_idCard[17] == ValideCode[valCodePosition]) {
return true;
} else {
return false;
}
}
/
通过身份z判断是男是女
@param idCard 15/18位身份z号码
@return 'female'-女、'male'-男
/
function maleOrFemalByIdCard(idCard){
idCard = trim(idCardreplace(/ /g, ""));// 对身份z号码做处理。包括字符间有空格。
if(idCardlength==15){
if(idCardsubstring(14,15)%2==0){
return 'female';
}else{
return 'male';
}
}else if(idCardlength ==18){
if(idCardsubstring(14,17)%2==0){
return 'female';
}else{
return 'male';
}
}else{
return null;
}
// 可对传入字符直接当作数组来处理
// if(idCardlength==15){
// alert(idCard[13]);
// if(idCard[13]%2==0){
// return 'female';
// }else{
// return 'male';
// }
// }else if(idCardlength==18){
// alert(idCard[16]);
// if(idCard[16]%2==0){
// return 'female';
// }else{
// return 'male';
// }
// }else{
// return null;
// }
}
/
验证18位数身份z号码中的生日是否是有效生日
@param idCard 18位书身份z字符串
@return
/
function isValidityBrithBy18IdCard(idCard18){
var year = idCard18substring(6,10);
var month = idCard18substring(10,12);
var day = idCard18substring(12,14);
var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));
// 这里用getFullYear()获取年份,避免千年虫问题
if(temp_dategetFullYear()!=parseFloat(year)
||temp_dategetMonth()!=parseFloat(month)-1
||temp_dategetDate()!=parseFloat(day)){
return false;
}else{
return true;
}
}
/
验证15位数身份z号码中的生日是否是有效生日
@param idCard15 15位书身份z字符串
@return
/
function isValidityBrithBy15IdCard(idCard15){
var year = idCard15substring(6,8);
var month = idCard15substring(8,10);
var day = idCard15substring(10,12);
var temp_date = new Date(year,parseFloat(month)-1,parseFloat(day));
// 对于老身份z中的你年龄则不需考虑千年虫问题而使用getYear()方法
if(temp_dategetYear()!=parseFloat(year)
||temp_dategetMonth()!=parseFloat(month)-1
||temp_dategetDate()!=parseFloat(day)){
return false;
}else{
return true;
}
}
//去掉字符串头尾空格
function trim(str) {
return strreplace(/(^\s)|(\s$)/g, "");
}
<script type="text/javascript">
//你的代码
var myarr = [['小A','女',21,'大一'],['小B','男',23,'大三'],['小C','男',24,'大四'],['小D','女',21,'大一'],
['小E','女',22,'大四'],['小F','男',21,'大一'],['小G','女',22,'大二'],['小H','女',20,'大三'],
['小I','女',20,'大一'],['小J','男',20,'大三']]
var firarry = new Array();
for(var i=0;i<10;++i){ //这句不对,i=0,++1,那么下面这行的i就是1了
if(myarr[i][3]=='大一'){
firarry = myarr[i];
//documentwrite(firarry);//这行输出大一的,没有用
}
}
for(var j=0;j<4;++j){ //因为上面的被覆盖了,所以这是最后一个大一的,再遍历也只有一个人,
// 而且控制条件写的不对,怎么可以小于4呢,里面只有一个人呀!
if(firarry[j][1]=='女')
documentwrite(firarry[j][0]);
}
/ 这里附上我写的一个运行成功的代码
var myarr=[['小A','女',21,'大一'],['小B','男',22,'大三'],['小c','男',15,'女'],['小D','女',14,'大一']];
for(var i=0;i<myarrlength;i++){
if(myarr[i][3]=='大一'&&myarr[i][1]=='女'){
documentwrite(myarr[i]);
}
}
/
</script>
这个自己写就是了,下面是大概的规则
18位身份z
前1~2位数字表示:所在省份的代码;
第3~4位数字表示:所在城市的代码;
第5~6位数字表示:所在区县的代码;
第7~14位数字表示:出生年、月、日;
第15~16位数字表示:所在地的派出所的代码;
第17位数字表示性别:奇数表示男性,偶数表示女性;
15位差距不大
前1~2位数字表示:所在省份的代码;
第3~4位数字表示:所在城市的代码;
第5~6位数字表示:所在区县的代码;
第7、8位为出生年份(两位数)
第9、10位为出生月份
第11、12位代表出生日期
第15位代表性别,奇数为男,偶数为女
按照你的要求,使用正则匹配12-120(包括12和120)的数字。代码如下:
var reg = /^1{1}[2-9]{1}$|^[2-9]{1}[0-9]{1}$|^1{1}[0-1]{1}[0-9]{1}$|^120$/;已经使用for循环验证了1-10000的数字。只有12-120被匹配。其他都不匹配。
但是,非常不建议使用正则,已经明确了区间的应该使用if语句来判断。
if(x>=12 && x<=120)这样一个很短的if语句。就可以识别x是否为12-120的区间了。用正则需要判断的可能性变多了。
以上就是关于js表单提交判断年龄全部的内容,包括:js表单提交判断年龄、用javascript验证身份z号的出身年月日怎么写!、关于JS的问题(设计二维数组)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)