一、移动端打电话html
window.location.href = ("tel:" + phone);
二、移动端发送短信--Android、iOSandroid
var u = navigator.userAgent, app = navigator.appVersion; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; // android终端或者uc浏览器 var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端 //sms:10086?body=1008611 sms:10086&body=1008611 if(isAndroid == true) { window.location.href=("sms:10694006929598?body="+text); } else if(isiOS == true) { window.location.href=("sms:10694006929598&body="+text); }
手机号码ios
/^1(3[0-9]|4[57]|5[0-35-9]|7[0135678]|8[0-9])\d{8}$/
电子邮箱c++
/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/ /^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/
删除 emoji 表情git
str.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,'');
<script>json
var x = document.getElementById("demo"); function getLocation() { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition, showError); } else { x.innerHTML = "Geolocation is not supported by this browser."; } } function showPosition(position) { x.innerHTML = "Latitude: " + position.coords.latitude + "<br />Longitude: " + position.coords.longitude; } function showError(error) { switch (error.code) { case error.PERMISSION_DENIED: x.innerHTML = "User denied the request for Geolocation." break; case error.POSITION_UNAVAILABLE: x.innerHTML = "Location information is unavailable." break; case error.TIMEOUT: x.innerHTML = "The request to get user location timed out." break; case error.UNKNOWN_ERROR: x.innerHTML = "An unknown error occurred." break; } }
</script>
错误代码:
-Permission denied - 用户不容许地理定位
-Position unavailable - 没法获取当前位置
-Timeout - 操做超时
-Unknown error - 未知错误数组
Array.prototype.unique_filterArray = Array.prototype.unique_filterArray || function(){ return this.filter(function(item, index, arr){ return arr.indexOf(item) === index; }); } Array.prototype.unique = function(){ var res = []; var json = {}; for(var i = 0; i < this.length; i++){ if(!json[this[i]]){ res.push(this[i]); json[this[i]] = 1; } } return res; }; arr.unique();//调用 Array.prototype.unique Array.prototype.remove = function(val) { var index = this.indexOf(val); if (index > -1) { this.splice(index, 1); } }; 使用JQ删除某一项 -- arr.splice($.inArray(item,arr),1);
*将GET参数按照键值对的形式输出json
var str = 'http://item.taobao.com/item.h...';*浏览器
function getUrl(str) { var data1=str.split("?")[1]; var result={}; if(data1.indexOf("&") > -1) { var bigArr=data1.split("&"); for(var a=0,b=bigArr.length;a<b;a++) { var smallArr=bigArr[a].split("="); result[smallArr[0]]=smallArr[1]; } } else { var arr1=data1.split("="); result[arr1[0]]=arr1[1]; } console.log(result); return result; } getUrl("http://10.8.15.176:666/wx.html?a=1");//{a:"1"} getUrl("http://10.8.15.176:666/wx.html?a=1&b=2&c=3&d");//{a: "1", b: "2", c: "3", d: undefined}
解析单个参数安全
function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; } http://10.8.15.176:666/bindSuccess/coupons.html?values=uri1&gets=uri2&types=uri3 var values=getQueryString("values") ||300, gets=getQueryString("gets"), types=getQueryString("types");
一、实现arr.forEach() IE8及如下不支持原生 Array.prototype.forEach
参考底部 Array.prototype.forEach服务器
if (!Array.prototype.forEach) { Array.prototype.forEach = function(callback, thisArg) { var T, k; if (this == null) { throw new TypeError('this is null or not defined'); } var O = Object(this); var len = O.length >>> 0; // 全部非数值转换成0;全部大于等于 0 等数取整数部分 if (typeof callback !== 'function') { throw new TypeError(callback + ' is not a function'); } if (arguments.length > 1) { T = thisArg; } k = 0; while (k < len) { var kValue; if (k in O) { kValue = O[k]; callback.call(T, kValue, k, O); } k++; } }; }
二、实现arr.filter()
参考底部 Array.prototype.filter
if (!Array.prototype.filter){ Array.prototype.filter = function(func, thisArg) { 'use strict'; if ( ! ((typeof func === 'Function' || typeof func === 'function') && this) ) throw new TypeError(); var len = this.length >>> 0, res = new Array(len), // preallocate array t = this, c = 0, i = -1; if (thisArg === undefined){ while (++i !== len){ // checks to see if the key was set if (i in this){ if (func(t[i], i, t)){ res[c++] = t[i]; } } } } else{ while (++i !== len){ // checks to see if the key was set if (i in this){ if (func.call(thisArg, t[i], i, t)){ res[c++] = t[i]; } } } } res.length = c; // shrink down array to proper size return res; }; }
var cookieUtil = {
get: function(name) { var cookieName = encodeURIComponent(name) + "=", cookieStart = document.cookie.indexOf(cookieName), cookieValue = null; if(cookieStart > -1) { var cookieEnd = document.cookie.indexOf(';', cookieStart); if(cookieEnd === -1) { cookieEnd = document.cookie.length; } cookieValue = decodeURIComponent(document.cookie.substring(cookieStart+cookieName.length, cookieEnd)); } return cookieValue; }, set: function(name, value, expires, path, domain, secure) { var cookieText = encodeURIComponent(name)+'='+encodeURIComponent(value); if(expires instanceof Date) { cookieText += '; expires=' + expires.toGMTString(); } else if(typeof expires === 'number') { cookieText += '; expires=' + (new Date(expires*24*60*60*1000+Date.now())).toGMTString(); } (new Date(毫秒数)).toGMTString() 7天后 (new Date(7*24*60*60*1000+Date.now())).toGMTString() if(path) { cookieText += '; path=' + path; } if(domain) { cookieText += '; domain=' + domain; } if(secure) { cookieText += '; secure'; } document.cookie = cookieText; }, unset: function(name, path, domain, secure) { this.set(name, '', new Date(0), path, domain, secure); }
}name: cookie惟一的名称 cookie必须通过URL编码 不区分大小写 实践中最好看成cookie区分大小写value: 字符串值 必须通过URL编码expires: 失效时间 cookie什么时候被删除的时间戳 默认状况下会话结束当即将全部cookie删除path: 域 全部向该域的请求中都会包含cookie 能够包含子域名 也能够不包含domain: 路径 对于指定域中的那个路径 应该向服务器发送cookiesecure: 安全标志 指定后,cookie只有在使用SSL链接时才会发送到服务器 是cookie中惟一一个非名值对的,直接包含secure