常用的JS函数及注意事项


常用的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()来解决这个问题。

文章作者: Justin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Justin !
评论