常用Javascript方法
一,检测是否是Array
1,通过constructor检测
function isArray(value){
   return value && typeof value === 'object' && value.constructor === Array;
}
2,通过instanceof检测
function isArray(value){
   return value && typeof value === 'object' && value instanceof Array;
}
3,通过toString检测
function isArray(value){
   return value && typeof value === 'object' && Object.prototype.toString.call(value) === '[object Array]'  ;
}
4,通过原生方法
Array.isArray(value);
二,检测是否是Object
function isObject(value){
   return value != null && typeof value === 'object' && Object.prototype.toString.call(value) === '[object Object]';
}
三,检测环境
1,检测是否是Android
function isAndroid(){
   return /Android/i.test(navigator.userAgent) || /Linux/i.test(navigator.appVersion);
}
2,检测是否是ios
function isIos(){
   return /ipad|iphone/i.test(navigator.userAgent);
}
3,检测是否是safari
function isSafari(){
   return /msie|applewebkit.+safari/i.test(navigator.userAgent);
}
4,检测是否是微信
function isWeiXin(){
   return /MicroMessenger/i.test(navigator.userAgent);
}
5,检测是否是Mobile
Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobi
function isMobile(){
return /Android|webOS|iphone|ipad|ipod|BlackBerry|IEMobile|Opera Mini|Mobile/.test(navigator.userAgent) && screen.width<500;
}
四,按需加载javascript与css
1,加载javascript
/**
* @param path
*/
function loadJS(path){
if(!path){
return Promise.reject();
}
return new Promise((resolve,reject)=>{
let dom = null;
const scripts = document.querySelectorAll('script');
for(let item in scripts){
if(new RegExp(path).test(item.src)){
dom = item;
onload(dom,()=>resolve());
return;
}
}
if(!dom){
const script = document.createElement('script');
script.src = path;
script.onload = (){
resolve();
script.onolad = null;
}
script.onerror = ()=>reject();
document.body.appendChild(script);
}
});
}
2,加载css
/**
* @param path
*/
function loadCSS(path) {
if (!path) {
return Promise.reject();
}
return new Promise((resolve, reject) => {
let dom = null;
let links = document.querySelectorAll('link');
for (let item of links) {
if (new RegExp(path).test(item.href)) {
dom = item;
onload(dom, resolve);
return;
}
}
if (!dom) {
const link = document.createElement('link');
link.rel = 'stylesheet';
link.href = path;
link.onload = () => {
resolve();
link.onload = null;
};
link.onerror = () => reject();
document.head.appendChild(link);
}
});
}
3,解决异步加载同一个文件的问题
/**
* @param dom
* @param resolve
*/
function onload(dom, resolve) {
const oldOnload = dom.onload;
if (oldOnload) {
dom.onload = () => {
oldOnload();
resolve();
};
} else {
resolve();
}
}
五,常用正则表达式
1,邮箱
function isEmail(email){
   let p = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
   return p.test(email);
}
2,QQ
function isQQ(qq){
   let p = /^[0-9]\d{4,10}/;
   return p.test(qq);
}
3,网址
function isUrl(url) {
   let p = /^(((ht)tps?):\/\/)?[\w\-]+(\.[\w\-]+)+([\w\-.,@?^=%&:\/~+#]*[\w\-@?^=%&\/~+#])?$/;
   return p.test(url);
}
4,身份证
function isCard(str) {
   return /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(str);
}
5,中文
function isChinese(str) {
   return /^[\u4e00-\u9fa5]+$/.test(str);
}
6,英文
function isEnglish(str) {
   return /^[a-zA-Z]*$/.test(str);
}
六,对象深拷贝
JSON.parse(JSON.stringify(obj));
常用Javascript方法的更多相关文章
- JavaScript中正则表达式判断匹配规则以及常用的方法
		JavaScript中正则表达式判断匹配规则以及常用的方法: 字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在. 正则表达式是一种用来匹配字符串的强有力的武器.它的设计思想 ... 
- JavaScript常用工具方法
		JavaScript常用工具方法 1.日期格式化 2.将日期字符串转换为Date,字符串格式为(yyyy-mm-dd hh:mm:ss) 3.JS获取当天00:00:00时间和23:59:59的时间 ... 
- JS常用校验方法(判断输入框是否为空,数字,电话,邮件,四舍五入等)
		JS常用校验方法: 1.判断输入框是否为空,为空时弹出提示框 2.关闭窗口 3.检查输入字符串是否为数字 4.强制把大写转换成小写 5.手机号码校验,长度为11位数字. 6.电子邮件校验 7.电话号码 ... 
- python_json常用的方法
		1. 什么是JSON? JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端 ... 
- js中关于string的一些常用的方法
		最近总结了一些关于string中的常用方法, 其中大部分的方法来自于<JavaScript框架设计>这本书, 如果有更好的方法,或者有关于string的别的常用的方法,希望大家不吝赐教. ... 
- jQuery常用工具方法
		前面的话 jQuery提供一些与元素无关的工具方法,不必选中元素,就可以直接使用这些方法.如果理解原生javascript的继承原理,那么就能理解工具方法的实质.它是定义在jQuery构造函数上的方法 ... 
- JS 数组常用的方法
		数组常用的方法: x.toString()方法:任何对象都有toString方法. 将任何对象转为字符串. 一般不主动调用,系统在需要时自动调用 x.valueOf()方法:同toStr ... 
- jQuery常用属性方法大全 attr(),val()
		@@@@属性篇: 写作本篇文章的意义:jQuery的教程千千万,却没有英文版的API讲的系统.到位,一些话用中文翻译过来味道就变了,所以我将英文版的API的一些常用的方法单独提出来放在这里,并用自己的 ... 
- jQuery 常用核心方法
		jQuery 常用核心方法 .each() 遍历一个jQuery对象,为每个匹配元素执行一个函数 $('p').each(function(idx,node){ $(node).text(idx + ... 
随机推荐
- Pikachu漏洞练习平台实验——CSRF(三)
			概述 CSRF 是 Cross Site Request Forgery 的 简称,中文名为跨域请求伪造 在CSRF的攻击场景中,攻击者会伪造一个请求(一般是一个链接) 然后欺骗目标用户进行点击,用户 ... 
- Codefores 507B  Amr and Pins
			B. Amr and Pins time limit per test 1 second memory limit per test 256 megabytes input standard inpu ... 
- 空类的sizeof,有一个虚函数的类的sizeof
			今天面试,忽然被问到这个题目,查了一下果然有欸. #include <iostream> using namespace std; class A { }; class B { publi ... 
- maven上传源码脚本
			mvn deploy:deploy-file -Dmaven.test.skip=true -Dfile=./target/bbc-common-1.0.0-source.jar -DgroupId= ... 
- 波兰语 polish
			There are several systems for encoding the Polish alphabet for computers. All letters of the Polish ... 
- c++网络库之 poco
			java 不好吗?java面向对象很好啊. poco 做的像 java 用起来更面向对象,这是优势.开发速度提升很多.boost 那种是给大牛看的.我觉得 poco 用起来方便,不清楚的地方随时看源码 ... 
- SSD算法的实现
			本文目的:介绍一个超赞的项目--用Keras来实现SSD算法. 本文目录: 0 前言 1 如何训练SSD模型 2 如何评估SSD模型 3 如何微调SSD模型 4 其他注意点 0 前言 我在学习完SSD ... 
- 密码加密与微服务鉴权JWT
			博客学习目标 1.用户注册时候,对数据库中用户的密码进行加密存储(使用 SpringSecurity). 2.使用 JWT 鉴权认证. 一.BCrypt 密码加密 1.常见的加密方式 任何应用考虑到安 ... 
- Vue学习笔记【27】——Vue路由(设置路由)
			设置路由高亮 css: .router-link-active, /* vue-router*/ .myactive { color: red; font-weigh ... 
- shell--grep命令+正则表达式+基本语法
			什么是正则 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 在linux中,通配符是由shell解释的,而正则表达式则 ... 
