常用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 + ...
随机推荐
- Git文件操作命令
添加文件 git add 添加指定文件: git add test.txt Test.java 添加所有文件: git add . 取消添加文件 git reset HEAD – filename g ...
- 搭建 webpack、react 开发环境(一)
基本介绍 Webpack 是一个前端资源加载/打包工具.它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源,它可以将多种静态资源 JavaScript.css.le ...
- 委托的异步编程和同步编程的使用( Invoke 和BeginInvoke)
一,区别: 使用Invoke完成一个委托方法的封送,就类似于使用SendMessage方法来给界面线程发送消息,是一个同步方法.也就是说在Invoke封送的方法被执行完毕前,Invoke方法不会返回, ...
- html中插入css的4种方法
#1:链入外部样式表 <head> <link href="mystyle.css" rel="stylesheet" type=" ...
- 迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章(快快珍藏)
常规的误区 假设有一个展示用户详情的需求,分两步,先调用一个HTTP接口拿到详情数据,然后使用适合的视图展示详情数据. 如果网速很慢,代码发起一个HTTP请求后,就卡住不动了,直到十几秒后才拿到HTT ...
- Linux: 给右键菜单加一个“转换图片为jpg格式”
Linux上通常都会安装imagemagick这个小巧但又异常强大的工具.这个软件提供了一系列很好用的功能.这里说一说如何使用它的convert命令转换图片为jpg格式,以及如何把它添加到Thunar ...
- 开源的android客户端,ghost网站
https://github.com/TryGhost/Ghost-Android http://docs.ghostchina.com/zh/
- windows下基于(QPC)实现的微秒级延时
1.为什么会写windows下微秒级延时 在上一篇 实现memcpy()函数及过程总结 中测试memcpy的效率中,测试时间的拷贝效率在微秒级别,需要使用微秒级时间间隔计数. windows下提供Qu ...
- linux-redis-install
安装redis3.2.9 wget cd make 编译完成后,将redis-cli redis-server redis-conf redis-benchmark配置文件复制到usr/redis文件 ...
- html+jquery+php实现文件上传全过程
本例子采用html+jquery+php实现上传功能 html部分 <!DOCTYPE html> <html> <head> <meta charset=& ...