常用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 + ...
随机推荐
- VS2013编译程序出现error C4996: 'std::_Fill_n': Function call with parameters that may be unsafe
最近按照BiliBil网站Visual C++网络项目实战视频教程,使用VS2013编写一个基于MFC的对话框程序HttpSourceViewer,采用了WinHttp库.Boost xpressiv ...
- css怎么解决表格边框线重复问题
<ul> <li><a href="#">1</a></li> <li><a href="# ...
- 组件化框架设计之Java SPI机制(三)
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680 本篇文章将从深入理解java SPI机制来介绍组件化框架设计: ...
- mysql常见的hint
mysql常用的hint对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法.同样,在mysql里,也有类似的hint功能.下面介绍一些常用的. ...
- kubernetes集群的安装异常汇---docker的驱动引擎
异常[kubelet cgroup driver:cgroupfs跟docker cgroup driver:systemd不一致] 异常描述 error: failed to run Kubelet ...
- 简单认识php
1.输出语句: echo 'hello world'; 2.声明变量用 $ 符号 $uname = 'andy'; 3. php 拼接字符串用 点(.) //设置中文编码 header("c ...
- postmortem报告【第二组】
一.alpha阶段的经验教训 1.针对 进度规划不到位,任务完成速度慢 的问题,引入teambition规范任务管理,每周组会验收上一周任务,发布下一周任务,对各组员是否完成任务以及完成质量进行评价. ...
- docker 安装Filebeat
1.查询镜像 docker search filebeat 2.拉取镜像 我此处选择的是prima/filebeat docker pull prima/filebeat 3.创建配置文件 fileb ...
- Python3.5-20190505-廖老师-自我笔记字典和set
字典:以键值对的形式存储数据.他就像字典一样,你可以查偏旁,直接跳到500页找到你想要的数据.但是列表就是从第一页开始一个一个的找,找到500页需要的时间很多. 所以字典就是查找速度快,但是所需要的空 ...
- C++ 浅析移位运算
按位左移(<<): 按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零 按位右移(>>): 按二进制形式把所有的数字向右移动对应位移位数,低位移出(舍 ...