常用的JS数据 正则表达式验证
手机号验证
var mobile = 18888888888
var patt = /^1[3-9]\d{9}$/;
console.log(mobile.match(patt));
或
var mobile = 18888888888;
var rule = /^1[3-9]\d{9}$/;
console.log(rule.test(mobile));
身份证号验证
var patt = /^[1-9]{1}[0-9]{14}$|^[1-9]{1}[0-9]{16}([0-9]|[xX])$/;
IP地址验证
var patt = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
邮箱验证
var patt = /^\w+((.\w+)|(-\w+))@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+).[A-Za-z0-9]+$/;
返回顶部
//返回顶部方法
$(".GoTop").click(function(){
$("html,body").animate({scrollTop:"0px"},'600');
});
//控制 控件展示或隐藏
$(window).scroll(function() {
var a = $(window).scrollTop();
if(a > 100) {
$('.GoTop').fadeIn();
}else {
$('.GoTop').fadeOut();
}
});
阻止冒泡
function stopBubble(e){
e = e || window.event;
e.stopPropagation ? e.stopPropagation()//W3C阻止冒泡方法 : e.cancelBubble = true;//IE阻止冒泡方法
}
获取url的指定参数
function GetUrlParams(name){
var reg = new RexExp("(^|&)"+name+"=([^&]*)(&|$)])"); //构造一个含有目标参数的正则表达式对象
var r = window.location.search.substr(1).match(reg); //匹配目标参数
if(r! = null) return unescape(r[2]); //返回参数值
return null; //否则返回空
}
var username = GetUrlParams('username');
批量替换字符串
// 将Str中的 old 替换成 new
var Str = 'old man old year old day'
var reg = new RegExp('old', 'gm');
console.log(Str.replace(reg, 'new')); //'new man new year new day';
// 可用于搜索后 关键字高亮
var search = 'b';
var reg = new RegExp("("+search+")","g");
var str = "abcdefgfedcba";
var result = str.replace(reg," $1 ");
document.write(result);
数组去重
function ArrayUnique(arr) {
var result = [], json = {};
for (var i = 0, len = arr.length; i < len; i++){
if (!json[arr[i]]) {
json[arr[i]] = 1;
result.push(arr[i]); //返回没被删除的元素
}
}
return result;
};
判断数组是否有重复
function ArrayRepeat(arr) {
var hash = {};
for (var i in arr) {
if (hash[arr[i]]) return true;
hash[arr[i]] = true;
}
return false;
};
截取数组
splice(start,length) //不会改变原属组,start:截取的开始位置,length:截取的长度
var a = [11,22,33,44,55,66,77];
console.log(a.splice(2)); // [11,22]
console.log(a.splice(2,0)); // 不执行删除,返回空属组
slice(start,end) //不会改变原属组,start:截取的开始位置,end:截取的结束位置(默认结尾)
var a = [11,22,33,44,55,66,77];
console.log(a.slice(2)); // [33,44,55,66,77]
console.log(a.slice(2,3)); // [33]
length //改变原属组
var a = [11,22,33,44,55,66,77];
a.length = 2; // [11,22]
a.length = 0; // []
获取数组最大值和最小值
var numbers = [999, 321, 1888, 123];
console.log(Math.max.apply(Math, numbers)); //1888
console.log(Math.min.apply(Math, numbers)); //123
关于JS精度
console.log(0.1 + 0.2 == 0.3) //false
JavaScript的数字都遵循IEEE 754标准构建,在内部都是64位浮点小数表示,因此 0.1+0.2等于0.30000000000000004。可以通过使用toFixed()来解决这个问题。