js

javascript (js)判断手机号码中国移动、中国联通、中国电信

偶尔善良 提交于 2020-02-21 08:33:58
我国使用的手机号码为11位,其中各段有不同的编码方向:前3位———网络识别号;第4-7位———地区编码;第8-11位———用户号码。 中国移动134、135、136、137、138、139、150、151、152、157、158、159、147、182、183、184、187、188.178(4G) 中国联通130.131.132.155.156.185.186.145(属于联通无线上网卡号段).176 (4G) 中国电信133.153.180.189.181 // 匹配移动手机号 var PATTERN_CHINAMOBILE = /^1(3[4-9]|5[012789]|8[23478]|4[7]|7[8])\d{8}$/ // 匹配联通手机号 var PATTERN_CHINAUNICOM =/^1(3[0-2]|5[56]|8[56]|4[5]|7[6])\d{8}$/; // 匹配电信手机号 var PATTERN_CHINATELECOM =/^1(3[3])|(8[019])\d{8}$/; 测试一下 : 中国电信: PATTERN_CHINATELECOM.test('18166889988'); true PATTERN_CHINATELECOM.test('13366889988'); true 中国联通: PATTERN_CHINAUNICOM.test(

JS判断汉字

拟墨画扇 提交于 2020-02-21 05:18:11
方法一:最笨的,最容易理解的,且可以随意设置要排除的字符 ====================================================================== <script language="javascript"> function isChinese1(str){ var badChar ="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; badChar += "abcdefghijklmnopqrstuvwxyz"; badChar += "0123456789"; badChar += " "+" ";//半角与全角空格 badChar += "`~!@#$%^&()-_=+]\\\\|:;\"\\\'<,>?/";//不包含*或.的英文符号 if(""==str){ return false; } for(var i=0;i<str.length;i++){ var c = str.charAt(i);//字符串str中的字符 if(badChar.indexOf(c) > -1){ return false; } } return true; } </script> 方法二:正则表达式实现,可实现中文,非中文,数字输入 =================================================

JS流程控制语句 重复重复(for循环)语句结构: for(初始化变量;循环条件;循环迭代) { 循环语句 }

社会主义新天地 提交于 2020-02-21 04:35:07
重复重复(for循环) 很多事情不只是做一次,要重复做。如打印10份试卷,每次打印一份,重复这个动作,直到打印完成。这些事情,我们使用循环语句来完成,循环语句,就是重复执行一段代码。 for语句结构: for(初始化变量;循环条件;循环迭代) { 循环语句 } 假如,一个盒子里有6个球,我们每次取一个,重复从盒中取出球,直到球取完为止。 <script type="text/javascript"> var num=1; for (num=1;num<=6;num++) //初始化值;循环条件;循环后条件值更新 { document.write("取出第"+num+"个球<br />"); } </script> 结果: 执行思路: 任务 我们有1,2,3...10不同面值的钱,使用for语句完成合计,看看我们一共有多少钱,请补充第8行代码,实现该功能。 <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>if...else</title> <script type="text/JavaScript"> var mymoney,sum=0;//mymoney变量存放不同面值,sum总计 for(mymoney=1

JS操作日期的工具类(获取本周、本月、本季度、本年、时间戳格式化方法)(转载存档)

寵の児 提交于 2020-02-21 03:51:17
提供的方法有: formatDateTime(dateTimeStemp, type)//时间戳转换成日期字符串 ,不传第二个参数返回年月日,传第二个参数返回年月日时分秒 getMonthDays(month)//获得某月的天数 getQuarterStartMonth() //获得本季度的开端月份 getWeekStartDate() //获得本周的开端日期 getWeekEndDate() //获得本周的停止日期 getMonthStartDate()//获得本月的开端日期 getMonthEndDate() //获得本月的停止日期 getLastMonthStartDate() //获得上月开端日期 getQuarterStartDate() //获得本季度的开端日期 getQuarterEndDate() //获得本季度的停止日期 getYearStartDate() // 获得本年开始日期 getYearEndDate() // 获得本年结束日期 var now = new Date(); //当前日期 var nowDayOfWeek = now.getDay(); //今天本周的第几天 var nowDay = now.getDate(); //当前日 var nowMonth = now.getMonth(); //当前月 var nowYear = now

JS常用操作节点的方法

流过昼夜 提交于 2020-02-21 02:35:56
js常见的创建dom节点的方法有 createElement() 创建一个元素节点 => 接收参数为string类型的nodename createTextNode() 创建一个文本节点 => 接收参数为string类型的text内容 createAttribute() 创建一个属性节点 => 接收参数为string类型的属性名称 createComment() 创建一个注释节点 => 接收参数为string类型的注释文本 一、创建DOM节点 使用的命令是 var oDiv = document.createElement('div'); 这样就创建了一个div标签。 二、插入DOM节点 移动DOM节点也就是把这个节点插入到html文档中的某个地方,这里js给了我们两个方法: 1.appendChild():把节点插入到父节点的末尾。 document.body.appendChild(oDiv); //把div插入到body中,并且位于末尾 2.insertBefore():把节点插入到父节点的某个兄弟节点的前面。 var oP = createElement('p'); //创建一个p节点 document.body.insertBefore(oP,oDiv); //把p节点插入到div的前面 三.删除DOM节点 删除DOM节点的方法是removeChild()。

js的变量提升问题

邮差的信 提交于 2020-02-21 01:50:37
执行结果: 为什么第一个不输出全局变量呢? 我们先了解下变量提升,指的是变量声明总是会被解释器“提升”到函数体的顶部,这意味着,我们的var scope="局部”,但解释器会提升该scope变量——将该变量的声明提升到函数体的顶部。 注意:变量提升只是提升变量声明部分,并不会提升变量赋值部分。 上面的代码可以转换为: function test(){ var scope ; document.writeln(scope+"<br/>"); scope = "局部"; document.writeln(scope+"<hr/>"); } 这样的话就在test()函数里面,先声明了scope变量,但是第一次打印时还没有赋值,故为undefined 来源: CSDN 作者: victor_yjx 链接: https://blog.csdn.net/victor_yjx/article/details/104417210

JS dom节点笔记

只愿长相守 提交于 2020-02-20 23:49:22
父节点: node.parentNode 获取子元素的父节点(得到的是离元素最近的父节点) 找不到返回null 代码: < div class = "box" > < div class = "erweima" > < div > < / div > var er = document . querySelector ( '.erweima' ) ; var box = er . parentNode ; 子节点(返回的是伪数组形式) 节点 内容 childNodes(标准) 返回所有的子节点 (包含元素节点 文本节点等等 )实际开发使用少 children(非标准) 返回子元素节点 实际开发常用 children[0] 返回第一个子元素节点 (伪数组的索引号) < ul > < li > < / li > < li > < / li > < li > < / li > < / ul > var ul = document . querySelector ( 'ul' ) ; var lis = ul . children ; 兄弟节点 1.nextSibling (返回所有的兄弟节点 包含元素节点 文本节点) 2.nextElementSibling (得到下一个兄弟元素节点 兼容性问题 IE9以上支持) 3.previousElementSibling (得到上一个兄弟元素节点

常用js封装

蹲街弑〆低调 提交于 2020-02-20 21:46:07
//获取url参数 function getUrlParams(name, url) { if (!url) url = location.href; name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]'); var regexS = '[\\?&]' + name + '=([^&#]*)'; var regex = new RegExp(regexS); var results = regex.exec(url); return results == null ? null : results[1]; } // 获取登录状态 & 用户昵称 function getMUserInfo() { let loggedIn = false; // 是否登录 let uid = 0; // 用户ID const cookieClubUserShow = getCookie('getCookie');//要取的字段 const autouserid = getCookie('getCookie'); // const cookieClubUserShow = '52100122|197|2|%e7%9a%b1%e7%9c%89_|0|0|0|/g11/M04/AB/BA/120X120_0_q87_autohomecar_

高性能网站建设,前端优化

喜你入骨 提交于 2020-02-20 17:39:18
相信互联网已经越来越成为人们生活中不可或缺的一部分。ajax,flex等等富客户端的应用使得人们越加“幸福”地体验着许多原先只能在C/S实 现的功能。比如Google机会已经把最基本的office应用都搬到了互联网上。当然便利的同时毫无疑问的也使页面的速度越来越慢。自己是做前端开发的,在性能方面,根据yahoo的调查,后台只占5%,而前端高达95%之多,其中有88%的东西是可以优化的。   以上是一张web2.0页面的生命周期图。工程师很形象地讲它分成了“怀孕,出生,毕业,结婚”四个阶段。如果在我们点击网页链接的时候能够意识到 这个过程而不是简单的请求-响应的话,我们便可以挖掘出很多细节上可以提升性能的东西。今天听了淘宝小马哥的一个对yahoo开发团队对web性能研究的 一个讲座,感觉收获很大,想在blog上做个分享。   相信很多人都听过优化网站性能的14条规则。更多的信息可见developer.yahoo.com   在firefox下有一个插件yslow,集成在firebug中,你可以用它很方便地来看看自己的网站在这几个方面的表现。   这是对用yslow对我的网站西风坊测评的结果,很遗憾,只有51分。呵呵。中国各大网站的分值都不高,刚测了一下,新浪和网易都是31分。然后yahoo(美国)的分值确实97分!可见yahoo在这方面作出的努力。从他们总结的这14条规则

js 类数组转化数组

拈花ヽ惹草 提交于 2020-02-20 17:05:01
一、常见类数组集合   (1)、arguements       function fn(){         var arr = [].slice.call(arguements,0);       }   (2)、HTMLCollection 元素集合 getElementsByTagName       var oList = document.getElementsByTagName("div");       var newArr = [].slice.call(oList);   (3)、NodeList 节点集合 getElementsByName       var nList = document.getElementsByName("divname");       var newArr1 = [].slice.call(nList);    //注:arguements 借助slice方法将类数组转化成数组在各个浏览器中都支持,但是借助slice方法将HTMLCollection(元素集合)或者NodeList(节点集合)类数组转化成数组会在IE6-IE8不兼容,会报错:this不是对象    通过以下方式处理兼容   var myUtils = {     // 实现将类数组转化为数组     listToArray:function(likeAry){