JavaScript基础插曲—元素样式,正则表达式,全局模式,提取数组
JavaScript基础学习
学习js的基础很重要,可以让自己有更多的技能。我相信这个以后就会用到。
Eg:点击选择框,在div中显示出选择的数量
- window.onload = function() {
- var inputs = document.getElementById('div1').getElementsByTagName('input');
- for (var i = 0; i < inputs.length; i++) {
- inputs[i].onclick = function () {
- var inputss = document.getElementById('div1').getElementsByTagName('input');
- var arroy = [];
- for (var j = 0; j <inputss.length; j++) {
- if (inputss[j].checked) {
- arroy[arroy.length] = inputss[j].value; //将选择的项放到数组中,循环的放置。
- }
- }
- document.getElementById('div2').innerHTML = '共选中'+arroy.length+'项:'+arroy.toString()+'';
- };
- }
- };

Eg:图标跟随鼠标移动
注意:需要将图片脱离文档流,我们需要设置其css中的position:absolute;这样就可以了。还有我们的body是有一个宽度,不代表整个页面。
- <style type="text/css">
- img {
- position: absolute;
- }
- </style>
- <script type="text/javascript">
- window.onload = function() {
- document.onmousemove = function (event) {
- var s = window.event || event;
- var img = document.getElementById('imgAhui');
- img.style.left = s.clientX+'px';
- img.style.top = s.clientY + 'px';
- };
- };
- </script>
元素的position样式值
à:static,无定位显示在默认位置。
à:absolute,绝对定位。
à:fixed,相对于窗口固定定位,位置不会跟随浏览器的滚动而变化。
à:relative,相对元素默认位置定位。
1:Onmouseover和onmouseout事件
Onmouseover和onmouseout事件,可以用于用户的鼠标移至html元素上方或移出的时候触发函数
- window.onload = function () {
- //+onmouseover鼠标
- document.getElementById('aaa').onmouseover = function () {
- //获取层对象
- var sss = document.getElementById('div1');
- //显示层
- sss.style.display = 'block ';
- //使层脱离文档流
- sss.style.position = 'absolute';
- sss.style.left = this.offsetLeft + 'px';
- sss.style.top = this.offsetTop + 'px';
- };
- //+onmouseout鼠标移动开
- document.getElementById('aaa').onmouseout = function() {
- var ssss = document.getElementById('div1');
- ssss.style.display = 'none';
- };
- };
2:当设置了层的边框,margin,padding等问题的时候通过offsetHeight获取的高度。
- var div11 = document.getElementById('div1').offsetHeight;
- var div1 = document.getElementById('div1').currentStyle.height;
onfocus事件:获得焦点事件。onclick事件:点击事件。
- window.onload = function () {
- //onfocus+获得焦点事件
- document.getElementById('dd').onfocus = function() {
- if (this.value == '请输入内容' && this.className == 'inter') {
- //清空内容和样式
- this.value = ' ';
- this.className = '';
- }
- };
- //onblur+失去焦点事件
- document.getElementById('dd').onblur = function() {
- if (this.value==' ') {
- this.value = '请输入内容';
- this.className = 'inter';
- }
- };
- };
3:js提交表单的方法
找到submit按钮并点击它的点击事件,或者可以直接调用表单对象的submit()方法实现提交。
JS中使用正则表达式
1:Js中创建正则表达式的方法
*一*:第一种方法
//判断邮箱是否合法。
- var regex=/^[0-9]{6}$/;
就是把正则表达式写在我们常写的注释里面,但是对于正则表达式来说不是这样子的。
*二:*第二种方法
这种写法用于动态生成正则表达式的情况下。
- var regex2 = new
RegExp('^[0-9]{6}$');
我们在使用的时候推荐使用第一种方法,因为第一种方法使用起来方便。不需要管转义字符。
2:eg,利用正则表达式提供的test()方法来进行匹配
- <script type="text/javascript">
- window.onload = function() {
- document.getElementById('btn').onclick = function() {
- var txt = document.getElementById('txt').value;
- //js中正则表达式的声明
- var regex = /^[0-9]{6}$/;
- //调用正则表达式对象的test()方法来测试是否匹配
- var isno = regex.test(txt);
- alert(isno);
- };
- };
- </script>
3:使用正则表达式进行提取。
利用正则表达式的exec()方法来提取。这个的使用方法和test()一样。
这个方法的提取每次只能提取出来一个数据。
- <script type="text/javascript">
- var msg = 'ahui1193451014小辉18694597894你好11599874857';
- window.onload = function () {
- //申明,定义正则表达式,用于提取数字,\d表示匹配数字,+表示一次或多次。
- var regex = /\d+/;
- var result = regex.exec(msg);
- alert(result);
- result = regex.exec(msg);
- alert(result);
- };
- </script>
当我们需要提取多个数据的时候,我们需要在定义正则的时候加上g(全局模式
),这样提取出来是个集合,我们接着在使用就可以了。
- <script type="text/javascript">
- var msg = 'ahui1193451014小辉18694597894你好11599874857';
- window.onload = function () {
- //申明,定义正则表达式,用于提取数字,\d表示匹配数字,+表示一次或多次。
- var regex = /\d+/g;
- //进行全局模式后,那么反复调用exec()方法,就可以提取出来每个匹配了。
- var result = regex.exec(msg);
- while (result) {
- alert(result);
- result = regex.exec(msg);
- }
- };
- </script>
G(全局模式):加上这个是因为每次查找的时候记住了个数(index),每次找的时候从之前查找的后面进行查找。
4:js中如何提取组。
还是和C#中的一样,是使用()来进行分组。当我们使用提取组,那个exec()方法返回的提取到的结果就不是一个简单的匹配字符串,而是一个数组,该组第一个元素是包含的字符串,第二个是提取到第一组的内容,三个是提取到第二组的内容。
- <script type="text/javascript">
- var msg = 'ahui1193451014小辉18694597894你好11599874857';
- window.onload = function () {
- //这里使用()来进行来组的划分
- var regex=/(\d{3})\d{4}(\d{4})/;
- var result = regex.exec(msg);
- while (result) {
- alert(result);
- result = regex.exec(msg);
- }
- };
- </script>

5:字符串的match()方法和replace()方法来操作正则表达式。
Match():是匹配正则,replace():实现替换
- <script type="text/javascript">
- var msg = 'ahui1193451014小辉18694597894你好11599874857';
- window.onload = function () {
- var datas = msg.match(/\d+/g);//正则要加全局模式
- for (var i = 0; i < datas.length; i++) {
- alert(datas[i]);
- }
- };
- </script>
JavaScript基础插曲—元素样式,正则表达式,全局模式,提取数组的更多相关文章
- JavaScript基础插曲-练习
Javascript基础学习 eg:利用正则表达式来去掉空格. 1:msg=' Hello ': <script type="text/javascript"> ...
- JavaScript获取HTML元素样式的方法(style、currentStyle、getComputedStyle)
一.style.currentStyle.getComputedStyle的区别 style只能获取元素的内联样式,内部样式和外部样式使用style是获取不到的. currentStyle可以弥补st ...
- JavaScript基础&实战 JS中正则表达式的使用
文章目录 1.正则表达式 1.1 代码 1.2 测试结果 2.splict | search 2.1 代码 2.2 测试结果 1.正则表达式 1.1 代码 <!DOCTYPE html> ...
- JavaScript基础—插曲
Javascript基础 1:js中我们最好使用单引号,其实可以使用双引号的但是为了区别所以js中全部使用单引号.注释和C#的是一样的.网页里面的执行顺序是从上到下依次执行的,不管你js放到哪里,都会 ...
- JavaScript基础插曲—获取标签,插入元素,操作样式
Js基础 1:document.write() 这个是动态创建元素内容,利用js.这个可以利用js来创建元素,文本,标签等,document.write()与document.writeln()的区别 ...
- JavaScript基础插曲---apply,call和URL编码等方法
Js基础学习 Js的压缩: 就是利用js的语法格式通过缩短变量名,去掉空格等来进行压缩. Apply和call的使用 1:apply方法:应用某一对象的方法,用于一个对象替换当前对象.主要是改变thi ...
- JavaScript基础—插曲02
Js学习基础 1:关于js中的数组 这里面可以是键值对的形式来存储的,我们必须利用forIn来输出,这就相当于foreach一样. var dir = new Array(); dir['0'] = ...
- 【JavaScript基础学习】关于正则表达式的完整内容
w3cJavaScript RegExp对象 这个如果第一次看的话应该会很莫名其妙,但可以看一遍留个印象. 正则表达式30分钟入门教程 这个教程非常完整,走一遍大概能够明白怎么回事了. 正则表达式在 ...
- JavaScript基础函数体中的唯一var模式(002)
全局变量是不好的.所以在声名变量的时候,应该采用函数体中的唯一var模式(Single var Pattern).这个模式有不少好处: 提供了一个唯一的地方来查看函数体中声名的变量 在使用一个变量之前 ...
随机推荐
- 【推荐】【给中高级开发者】构建高性能ASP.NET应用的几点建议
本篇目录 早期阶段就要对应用进行负载测试 使用高性能类库 你的应用是CPU密集还是IO密集的 使用基于Task的异步模型,但要慎重 分发缓存和会话(session)状态 创建Web Gardens 巧 ...
- Java设计模式11:外观模式
外观模式 外观模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的外观对象进行.外观模式是一个高层次的接口,使得子系统更易于使用. 医院的例子 现代的软件系统都是比较复杂的.假如把医院比作一 ...
- ubuntu git 使用
apt-get install git//ubuntu安装git mkdir -p /var/www/gitProj //创建文件夹 cd /var/www/gitProj //进入文件夹 git i ...
- JavaScript思维导图—函数基础
JavaScript思维导图-来自@王子墨http://julying.com/blog/the-features-of-javascript-language-summary-maps/
- 解决SQLSERVER数据库表被琐死!
) ) BEGIN Exec (@spId) FETCH NEXT FROM TmpCursor INTO @spId END CLOSE TmpCursor DEALLO ...
- 目前在做的一个web应用程序的前端选型
最近进入了一个新的项目组,要新起一个项目.这个Web项目是一个企业内部使用的系统,主要用来记录.追踪.管理潜在客户的数据.该系统有以下特点: 需要支持IE10及以上版本: 后端采用micro serv ...
- 程序员DNS知识指南
本次内容比较hardcore,非科班出身可能会有理解障碍,可以考虑不用挣扎,直接放弃.毕竟普通驾驶员是不需要理解内燃机原理和曲轴如何做功的,所谓术业有专攻也,能看完的不是同行就是真爱~ 引 DNS对于 ...
- [C#反射]C#中的反射解析及使用.
1.对C#反射机制的理解2.概念理解后,必须找到方法去完成,给出管理的主要语法3.最终给出实用的例子,反射出来dll中的方法 参考: C#反射,MSDN编程指南 反射是一个程序集发现及运行的过程,通过 ...
- Atitit 发帖机系列(7) 词法分析的方法attilax大总结)
Atitit 发帖机系列(7) 词法分析的方法attilax大总结) 1.1. 词法分析貌似俩大方法,一个直接根据状态图转换,一个根据dfa1 1.2. switchcase或者ifelse 最原始方 ...
- Atitit.gui api自动化调用技术原理与实践
Atitit.gui api自动化调用技术原理与实践 gui接口实现分类(h5,win gui, paint opengl,,swing,,.net winform,)1 Solu cate1 Sol ...