本文旨在记录自己使用js相关遇到的常用的功能函数,持续更新中
1.生成32位随机字符串
<script type="text/javascript">
function randomString(len) {
len = len || 32;
var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'; /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/
var maxPos = $chars.length;
var pwd = '';
for (i = 0; i < len; i++) {
pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
}
return pwd;
}
document.write(randomString(32));
</script>
2.验证手机号码格式
var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
myreg.test($telnumber);
3.验证邮编格式
var re= /^[1-9][0-9]{5}$/;
re.test($post)
4.验证身份证格式
function validateIdCard(idCard){
//15位和18位身份证号码的正则表达式
var regIdCard=/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;
//如果通过该验证,说明身份证格式正确,但准确性还需计算
if(regIdCard.test(idCard)){
if(idCard.length==18){
var idCardWi=new Array( 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ); //将前17位加权因子保存在数组里
var idCardY=new Array( 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 ); //这是除以11后,可能产生的11位余数、验证码,也保存成数组
var idCardWiSum=0; //用来保存前17位各自乖以加权因子后的总和
for(var i=0;i<17;i++){
idCardWiSum+=idCard.substring(i,i+1)*idCardWi[i];
}
var idCardMod=idCardWiSum%11;//计算出校验码所在数组的位置
var idCardLast=idCard.substring(17);//得到最后一位身份证号码
//如果等于2,则说明校验码是10,身份证号码最后一位应该是X
if(idCardMod==2){
if(idCardLast=="X"||idCardLast=="x"){
return "ok";
}else{
return "身份证号码错误!";
}
}else{
//用计算出的验证码与最后一位身份证号码匹配,如果一致,说明通过,否则是无效的身份证号码
if(idCardLast==idCardY[idCardMod]){
return "ok";
}else{
return "身份证号码错误!";
}
}
}
}else{
return "身份证格式错误!";
}
}
5.判断时间大小
function checkEndTime(startTime,endTime){
var start=new Date(startTime.replace("-", "/").replace("-", "/"));
var end=new Date(endTime.replace("-", "/").replace("-", "/"));
if(end<start){
return false;
}
return true;
}
6.监听input的value变化事件
<input type="text" id="username" οninput="OnInput(event)" onpropertychange="OnPropChanged(event)" />
//-------------------js-----------------------
// Firefox, Google Chrome, Opera, Safari, Internet Explorer from version 9
function OnInput(event) {
var value = event.target.value;
//do something else
}
// Internet Explorer
function OnPropChanged(event) {
if (event.propertyName.toLowerCase () == "value") {
var value = event.srcElement.value;
//do something else
}
}
//-------------------jquery------------------------
$('#username').bind('input propertychange', function() {
$value = $(this).val();
});
7.监听checkbox选中事件以及设置选中状态
$('#allSel').click(function(){
if ($("#allSel").is(":checked")) {
console.log('ok');
//判断复选框是否被选中
$.each($('input[name="selU"]'),function(i,obj){
$(obj).prop('checked',true);//设置选中
});
$('#allSelLabel').text("取消");
}else {
console.log('not ok');
$('#allSelLabel').text("全选");
$.each($('input[name="selU"]'),function(i,obj){
$(obj).prop('checked',false);//设置没选中
});
}
})
来源:CSDN
作者:鬼谷传人
链接:https://blog.csdn.net/u012519228/article/details/52296500