一些常用的js代码

本文介绍了一系列JavaScript实用函数,包括获取不同形式的日期、验证输入格式如身份证号的有效性、过滤字符串空格等。这些函数适用于网页开发中常见的日期处理及表单验证场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


//获取绝对路径
function getUrl(path)
{
var url = window.location.href;
var r = url.match(/^http:\/\/[^\/:]*:\d*\/[\d\w]*\//);
return (r==null?"":r[0]) + (path==null?"":path);
}

//初始化时间为月初
function getInitDate() {
var myDate = new Date();
var year = myDate.getFullYear();
var month = myDate.getMonth() + 1;
month = month < 10 ? ("0" + month) : month;
return year + "-" + month + "-01";
}
//初始化时间为月初
function getFirstDate() {
var myDate = new Date();
var year = myDate.getFullYear();
return year + "-01-01";
}
//初始化时间为年末
function getLastDate() {
var myDate = new Date();
var year = myDate.getFullYear();
return year + "-12-31";
}
//初始化时间为当前时间
function getCurrDate(format) {
var myDate = new Date();
var year = myDate.getFullYear();
var month = myDate.getMonth() + 1;
var day = myDate.getDate();
month = month < 10 ? ("0" + month) : month;
day = day < 10 ? ("0" + day) : day;
if(format == 'month')
return year + month;
return year + "-" + month + "-" + day;
}
//判断时间格式是否有效
String.prototype.isDate = function() {
if (this == "")
return true;
var r = this.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if (r == null)
return false;
var d = new Date(r[1], r[3] - 1, r[4]);
return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d
.getDate() == r[4]);
}
//判断时间格式是否有效
String.prototype.isMonth = function() {
return (this=="") || (null!= this.match(/^(\d{4})((0[\d])|(1[0,1,2]))$/));
}
//判断是否整型
String.prototype.isInt = function() {
return this.match(/^\d*$/) !=null;
}
//过滤字符串左右空格
String.prototype.trim = function() {
return this.replace(/(^\s*)|(\s*$)/g, "");
}
//过滤字符串左边空格
String.prototype.ltrim = function() {
this.replace(/(^\s*)/g, "");
}
//过滤字符串右边空格
String.prototype.rtrim = function() {
this.replace(/(\s*$)/g, "");
}

//根据checkBox的name获取被选中的value值,以,号隔开
function getCheckBoxVal(name)
{
var val = '';
$("input[@name=" + name + "][@checked]").each(function(){
if (val != "")
{
val += ",";
}
val += $(this).val();
});
return val;
}
//校验证身证,自动将15位身份证转为18位
function validCardId(cardId)
{
var ret = {err:""};
var verifyArr = [1,0,"x",9,8,7,6,5,4,3,2];
var Wi = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
if(cardId.length != 15 && cardId.length != 18){
ret.err="请输入15或者18位身份证号";
return ret;
}
var Ai=cardId.length==18?cardId.substring(0,17):cardId.slice(0,6)+"19"+cardId.slice(6,16);
if (!/^\d+$/.test(Ai)){
ret.err="身份证号错误";
return ret;
}
var yyyy=Ai.slice(6,10),mm=Ai.slice(10,12)-1,dd=Ai.slice(12,14);
var birthday = yyyy+"-" + mm + "-" + dd;
if(!birthday.isDate()){
ret.err="身份证号日期错误";
return ret;
}
for(var i=0,r=0;i<17;i++) r+=Ai.charAt(i)*Wi[i];
var verify = verifyArr[r %=11];

if(cardId.length ==18 && cardId.toLowerCase() != Ai){
ret.err="身份证号校验码不符,为:" + verify;
return ret;
}
ret.birthday = birthday;
ret.gender= Ai[16]%2 ? "女":"男";
ret.cardId= Ai + verify;
return ret;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值