php cookie 正则,JS-cookie-地理位置-实现数组迭代和去重-解析URI参数-常用正则-打电话...

cookievar 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: 路径 对于指定域中的那个路径 应该向服务器发送cookie

secure: 安全标志 指定后,cookie只有在使用SSL连接时才会发送到服务器 是cookie中唯一一个非名值对的,直接包含secure

获取用户地理位置

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 +

"
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;

}

}

错误代码:

-Permission denied - 用户不允许地理定位

-Position unavailable - 无法获取当前位置

-Timeout - 操作超时

-Unknown error - 未知错误

实现数组迭代方法

1、实现arr.forEach() IE8及以下不支持原生 Array.prototype.forEach

参考底部 Array.prototype.forEachif (!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++;

}

};

}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;

};

}

数组去重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);

[更多方法链接](https://blog.csdn.net/weixin_43242112/article/details/106951974)

解析URI参数*将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

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");

JS -- 正则手机号码/^1(3[0-9]|4[57]|5[0-35-9]|7[0135678]|8[0-9])\d{8}$/

电子邮箱/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/

/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/

删除 emoji 表情str.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,'');

通信

1、移动端打电话window.location.href = ("tel:" + phone);

2、移动端发送短信--Android、iOSvar 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);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值