JavaScript学习资料五

1.正则表达式(RegExp)
1)正则表达式的基本语法规则
语法:
创建正则表达式对象:
var reg = new RegExp(pattern,modifiers);
或者
var reg = /pattern/modifiers; 
注:

pattern   描述了表达式的模式/规则
modifiers 用于指定全局匹配、区分大小写的匹配和多行匹配

对应修饰符modifiers有三个选项:
i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m 执行多行匹配。
同时在创建正则表达式对象的是也可以不写修饰符,默认即可




2)pattern内容的分析
 
括号:
[abc] 查找方括号之间的任何字符。
[^abc] 查找任何不在方括号之间的字符。
[0-9] 查找任何从 0 至 9 的数字。
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。
(red|blue|green) 查找任何指定的选项。

元字符:
. 查找单个任意字符,除了换行和行结束符.如果要表示.这个字符,需要转义
\w 查找单词字符。     字母 数字 _
\W 查找非单词字符。非 字母 数字 _
\d 查找数字。
\D 查找非数字字符。
\s 查找空白字符。
\S 查找非空白字符。
\b 匹配单词边界。
\B 匹配非单词边界。
\0 查找 NUL 字符。
\n 查找换行符。
\f 查找换页符。
\r 查找回车符。
\t 查找制表符。
\v 查找垂直制表符。

量词:
n+ 匹配任何包含至少一个 n 的字符串。
n* 匹配任何包含零个或多个 n 的字符串。
n? 匹配任何包含零个或一个 n 的字符串。
n{X} 匹配包含 X 个 n 的序列的字符串。
n{X,Y} 匹配包含 X 到 Y 个 n 的序列的字符串。
n{X,} 匹配包含至少 X 个 n 的序列的字符串。
n$ 匹配任何结尾为 n 的字符串。
^n 匹配任何开头为 n 的字符串。
?=n 匹配任何其后紧接指定字符串 n 的字符串。
?!n 匹配任何其后没有紧接指定字符串 n 的字符串。

3)支持正则表达式的 String 对象的方法
使用字符串对象的相关方法按照正则表达式所描述的规则去搜索、匹配、替换、分割.


search 检索与正则表达式相匹配的值。
match 找到一个或多个正则表达式的匹配。
replace 替换与正则表达式匹配的子串。
split 把字符串分割为字符串数组。


4)RegExp 对象方法
   使用正则表达式对象(RegExp)的相关方法来对指定字符串进行格式的验证.


compile 编译正则表达式。
exec 检索字符串中指定的值。返回找到的值,并确定其位置。
test 检索字符串中指定的值。返回 true 或 false。


5)例子
var v = "aa1a";
//字符串中包含数字就行
var reg = /\d/;
console.log(reg.test(v));


var v = "aaa1111aa";
//字符串中连着出现4次(或者更多)数字即可
var reg = /\d{4}/;
console.log(reg.test(v));


var v = "1111";
//^表示开头 $表示结尾
//开头和结尾直接必须连续出现4次数字
var reg = /^\d{4}$/;
console.log(reg.test(v));

var v = "1aaa2345";
//开头一个非0数字,后面跟任意字符0-n个,最后4个数字结尾
var reg = /^[1-9]{1}.*\d{4}$/;
console.log(reg.test(v));

var v = "aaredaa";
//red go yes 三个单词任意匹配
var reg = /(red|go|yes)/;
console.log(reg.test(v));

var v = "a1";
//开头是一个字符 结尾是一个数字(一共俩个字符)
var reg = /^\w\d$/;
console.log(reg.test(v));

var v = "aasd11111";
//开头是字符(1-n个),结尾是个数字
var reg = /^\w+\d$/;
console.log(reg.test(v));

var v = "aasd11111.com";
//开头是字符(1-n个),结尾.com
var reg = /^\w+(\.com)$/;

console.log(reg.test(v));


var v = "aasd  )_###11111";
//开头是字符(1-n个)  中间随意匹配 结尾是一个数字
var reg = /^\w+.*\d$/;
console.log(reg.test(v));

//email验证
var v = "test@briup.com";
//var reg = /^\w+@\w+(\.[A-z]{2,3}){1,2}$/;
var reg = /^\w+@\w+\.\w+/;
console.log(reg.test(v));


2.表单验证

第一种方式:提交的时候验证
<form action="" οnsubmit="return jsCheck()">
<input type="text" name="name" /><br>
...
..
..
..
<input type="submit" value="提交" />
</form>

注意:οnsubmit="return jsCheck()"表示表单提交之前先调用jsCheck()这个函数进行验证,然后jsCheck()返回true表示通过验证,则表单可以继续提交,返回false表示验证失败,表单不能提交.


第二种方式:在填写输入框的时候或者输入框失去焦点的时候进行验证,和第一种方式验证的时间点不同,但是验证使用的函数都是一样的.
例如使用onkeyup事件,可以在用户边输入的时候边验证


注意:javascript代码也可以提交表单:
document.forms.myForm.submit();

例如:使用document拿到name="f"的页面表单并设置提交表单事件
document.forms.f.onsubmit = function(){
//这个函数中的this表示当前表单对象f

//获得name="username"的输入框的值
console.log(this.username.value);
//获得name="password"的输入框的值
console.log(this.password.value);

//获得name="gender"的单选框(可以是多个)
console.log(this.gender);
//可以获得当前用户选的那个单选框的值
console.log(this.gender.value);
//可以设置单选框选择男(0)或者女(1)
this.gender.value = 1;
//也可以这样俩种方式设置某个单选框被选中
this.gender[1].checked = "checked";
this.gender[1].checked = true;
//可以取消某个已经被选择的单选框 注意是取消不是选另一个
this.gender[1].checked = false;

//获得表单中name="like"的多选框(可以有多个)
console.log(this.like);
//查询每个多选框是否被选中
console.log(this.like[0].checked);
console.log(this.like[1].checked);
console.log(this.like[2].checked);

//可以自己设置某个多选框被选中
this.like[2].checked = true;
this.like[2].checked = "checked";
//可以取消选中某一个多选框
this.like[2].checked = false;

//可以查看被选中的多选框的值
//不能使用for-in循环 this.like集合对象中除了下标还有其他的属性
for(var i=0;i<this.like.length;i++){
if(this.like[i].checked){
console.log(this.like[i].value);
}
}

//可以给某一个多选框添加点击事件
//每次点击之后我们可以知道用户是选中了还是取消了此多选框
this.like[0].onclick = function(){
console.log(this.checked);
}

//获得表单中name="city"的下拉列表
console.log(this.city);
//获得下拉列表中当前被选中的值
console.log(this.city.value);
//设置下拉列表中哪一个值被选中
this.city.value = 2;

//获得此下拉列表中所有option元素对象
var opt = this.city.getElementsByTagName("option");
//可以用俩种方式让某一个选项被选中
opt[2].selected = true;
opt[2].selected = "selected";

}



3.浏览器对象模型Browser Object Model (BOM)
BOM提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关。BOM的核心对象是window,它表示浏览器的一个实例,在浏览器中window对象有双重角色既是通过javascript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象。

1)窗口大小
innerWidth 页面视图区的宽度
      innerHeight 页面视图区的高度
      outerWidth 浏览器窗口的宽度
      outerHeight 浏览器窗口的高度
所有主流浏览器都支持innerWidth,innerHeight,outerWidth,outerHeight 属性。注意:IE8及更早IE版本不支持这些属性。


例如:
console.log(window.innerWidth);
console.log(window.innerHeight);
console.log(window.outerWidth);
console.log(window.outerHeight);
2)scrren对象
    屏幕总宽度/高度: 
screen.width
screen.height


例如:
console.log(window.screen.width);
console.log(window.screen.height);

3)打开/关闭窗口
      window.open() 
例如:
      window.open("http://www.baidu.com","newwindow","height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no");
打开的新窗口高为100,宽为400,距屏顶0象素,屏左0象素,无工具条,无菜单条,无滚动条,不可调整大小,无地址栏,无状态栏

或者
简单的使用window.open("http://www.baidu.com");即可


window.colse(); 
注意firefox浏览器中会不起作用,需要修改为以下写法:
window.open("","_self").close();
同时在FireFox需要设置一个浏览器参数:
在Firefox地址栏里输入 about:config
在配置列表中找到 dom.allow_scripts_to_close_windows
把默认的false值修改为true即可。默认是false,是为了防止脚本乱关窗口


4)location对象
是最有用的BOM对象之一,提供了与当前窗口中加载的文档有关的信息,还提供一些导航功能。location是个神奇的对象,既是window的对象也是document的对象。
console.log(window.location == document.location);//true

属性:
       host 返回服务器名称和端口号
hostname 返回不带端口号的服务器名称
href 返回当前加载页面的完整URL
pathname 返回URL的目录和文件名
port 返回URL中指定的端口号
protocol 返回页面使用的协议
search 返回URL的查询字符串。这个字符串以问号开头

方法:
   assign() 传递一个url参数,打开新url,并在浏览记录中生成一条历史记录。
   replace() 参数为一个url,结果会导致浏览器位置改变,但不会在历史记录中生成新记录
注意:有历史记录就可以回退,没有则不能回退


      reload() 重新加载当前显示的页面,参数可以为boolean类型,默认为false,表示以最有效方式重新加载,可能从缓存中直接加载。如果参数为true,强制从服务器中重新加载

注意:
以下三句话效果一样
window.location="http://www.baidu.com";
location.href="http://www.baidu.com"
location.assign("http://www.baidu.com");


5)history对象
window.history 对象包含浏览器的历史
例如:
history.back()    - 与在浏览器点击后退按钮相同
history.forward() - 与在浏览器中点击按钮向前相同
history.go(-3);

6)window的超时调用和定时调用
javascript是单线程语言,但是可以通过 超时值 和 间歇时间 来调度代码在特定时刻执行
1.setTimeout();
该方法返回一个数值ID,表示超时调用,超过指定时间后自动调用一次指定函数。这个超时调用ID是计划执行代码的唯一标识符通过它来取消超时调用。可以通过clearTimeout(ID)取消调用


参数:
1.要执行的代码
2.以毫秒表示的时间。


例如: 
//一秒后调用
//只执行一次
var id = setTimeout(function(){
alert("hello");
},1000);
console.log(id);


//清除
clearTimeout(id);

2.setInterval();
按照指定的时间间隔重复执行代码,直到间歇调用被取消或页面被卸载。调用该方法也会返回一个间歇调用ID,该ID可以用户在将来某个时刻取消间歇调用

参数:
  1.要执行的代码
2.以毫秒表示的时间。
  clearInterval(ID);  //取消间歇调用


例如: 
//每隔五秒钟调用一次函数
var id = setInterval(function(){
alert("hello");
},5000);
console.log(id);


//清除
clearInterval(id);


-----------------------------------------------------


特殊的css
  1) 元素的显示和可见性
  visibility:
hidden  元素不可见,但是在文档布局中保留了它的空间。
visible 元素可见
  display
none 元素不可见,在文档布局中不给它分配空间,它的各边元素会合拢,就当它不存在过。在展开和折叠轮廓的效果时,display属性很有用。
  
2) 颜色,透明度
  opacity 透明度:0~1之间的数字
  filter: IE中表示透明度 0~100之间的数字
常用表示透明度的方法
  opacity: 0.75;
  filter:alpha(opacity=75);



javascript中设置元素特殊名字的css的属性
style 属性,该属性的值不是字符串,而是一个CSSStyleDeclaration对象,该对象代表了HTML代码中通过style指定的css属性。javascript中的css属性大多与标签中的css属性相同,但是如果css样式属性在名字中出现了连字符,该属性名的格式应该是移除连字符,将每个连字符后面紧接着的字母大写,如 
background-color =>e.backgroundColor
其他的例子:
e.style.fontSize = "24px";
e.style.fontWeight = "bold";
e.style.color = "blue";



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网上有人分享经验,说到学习前端开发技术JavaScript很实用的一些书籍,从入门到高级,一一列举,很不错。整理了一下发上来。 名称: JavaScript+DOM编程艺术.pdf 概述: “本书理应奉为经典。文笔清晰,采用了优秀的编程原则,严格遵守相应的标准。真是完美的结合。” ——Slashdot “我要隆重推荐本书。它前所未有地演示了DOM脚本编程的真正潜力。无论你是JavaScript新手还是专家,本书都绝对必读。”——Garrent Dimon,Digital-Web.com 随着Ajax的兴起,JavaScript再一次成为炙手可热的技术。然而,在历史上,它并不是一直这么幸运,由于主流浏览器之间的不兼容,以JavaScript为核心的DHTML曾经昙花一现,很快被人遗忘。 俱往矣,如今的网页设计已经翻开了新的一页。在CSS彻底改变了Web页面布局的方式之后,万维网联盟跨浏览器的DOM标准的制定,使JavaScript终于突破瓶颈,成了大大改善网页用户体验的利器。 本书在简洁明快地讲述JavaScript和DOM的基本知识之后,过几个实例演示了大师级的网页开发技术,并透彻阐述了一些至关重要的JavaScript编程原则和最佳实践,包括预留退路、循序渐进和以用户为中心等。读者可以非常直观地加以领悟,迅速使自己的编程技术更上一层楼。 第1章 JavaScript简史  1.1 JavaScript的起源  1.2 浏览器之争  1.3 制定标准  1.4 小结 第2章 JavaScript语法  2.1 准备工作  2.2 语法  2.3 语句  2.4 变量  2.5 操作  2.6 条件语句  2.7 循环语句  2.8 函数  2.9 对象  2.10 小结 第3章 DOM  3.1 文档:DOM中的“D”  3.2 对象:DOM中的“O”  3.3 模型:DOM中的“M”  3.4 趁热打铁  3.5 小结 第4章 案例研究:JavaScript美术馆  4.1 编写标记语言文档  4.2 编写JavaScript函数  4.3 JavaScript函数的调用  4.4 对JavaScript函数进行功能扩展  4.5 小结 第5章 JavaScript编程原则和良好习惯  5.1 不要误解JavaScript  5.2 预留退路  5.3 向CSS学习  5.4 分离JavaScript  5.5 向后兼容性  5.6 小结 第6章 案例研究:JavaScript美术馆改进版  6.1 快速回顾  6.2 解决“预留退路”问题  6.3 解决“分离JavaScript”问题  6.4 JavaScript函数的优化:不要做太多的假设  6.5 DOM Core和HTML-DOM  6.6 小结 第7章 动态创建HTML内容  7.1 [removed]()方法  7.2 innerHTML属性  7.3 DOM提供的方法  7.4 重回“JavaScript美术馆”  7.5 小结  7.6 下章简介 第8章 充实文档的内容  8.1 不应该做的事情  8.2 把“不可见”变成“可见”  8.3 原始内容  8.4 XHTML文档  8.5 CSS  8.6 JavaScript代码  8.7 小结  8.8 下章简介 第9章 CSS-DOM  9.1 三位一体的网页  9.2 style属性  9.3 何时该用DOM脚本去设置样式信息  9.4 className属性  9.5 小结 第10章 用JavaScript实现动画效果  10.1 何为动画  10.2 实用的动画  10.3 改进动画效果  10.4 最后的优化  10.5 小结 第11章 学以致用:JavaScript网站设计实战  11.1 案例背景介绍  11.2 页面视觉效果设计  11.3 CSS  11.4 颜色  11.5 XHTML文档  11.6 JavaScript脚本  11.7 小结  11.8 下章简介 第12章 展望DOM脚本编程技术  12.1 Web的现状  12.2 Ajax技术  12.3 Web应用  12.4 小结 附录 DOM方法和属性

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值