<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>this</title>
<script>
//this:指的是调用函数的对象,但是对于自调用函数来数,它其中的this指向window
window.onload = function(){
//函数中引用
var x = 1;
function f(){
this.x=2;
};
f();//执行该函数时结果是2,不执行该函数时结果是1.
console.log(x);
//函数绑定对象 (对象中引用,this指向该对象)
function f1(){
console.log(this);
}
var o = {};
o.name = 'sonia';
o.action = f1;
f1();//直接执行此函数时this指向Windows。
o.action();//执行此函数时,this指向对象 o;
//构造函数中引用
function F(name,age){
this.name = name;
this.age = age;
};
var ff =new F('sonia',20);
//call apply
var name = '123';
function f1(){
return this.name;
}
var o = {};
o.name = 'sonia';
o.action = f1;
console.log(o.action.apply());//结果是‘123’,因为apply的参数如果不填写的话,默认是一个指向window的this。
console.log(o.action.apply(o));//结果是‘sonia’
//自调用函数
var number =1;
var f={
number:2,
showNumber:function(){
this.number = 3;
(function(){
console.log(this.number);
})();//函数自执行,this指向window
console.log(this.number);
}
};
f.showNumber();//结果是 1 3
//正则表达式
//校验
var value = '123';
var filter = /^go?gle$/;
// var filter =new RegExp('^go?gle$');另一种写法
if(filter.test(value)){
console.log('ok');
};
/*
“\B与\b”
\b:匹配一个单词的边界
\B:匹配一个单词的非边界
hi thi this his
\Bhi\B:只能匹配到单词‘this’,因为this中的‘hi’前后都有字符
\bhi\b:只能匹配到单词‘hi’,因为hi中的‘hi’前后都没有字符
“\D与\d”
"\d":匹配一个数字字符,
"\D":匹配一个非数字字符
12erty3345
\d:能匹配出所有的数字
\D:能匹配出所有的字母
“\w”和“\W”
“\w”:匹配字母/数字/下划线
“\W”:匹配非字母/数字/下划线
123abc_@#$%
\w: 匹配所有的字母/数字/下划线
\W:匹配所有的非字母/数字/下划线
“^”和“$”
“^”代表字符串的开头
“$”代表字符串的结束
^hi
hi$
^hi$:只能与hi相匹配。
“[ ]”:方括号“[ ]”匹配指定一堆字符中的一个。
^[a-z]at$:只能匹配出三个字符,第一个字符是a-z(必须是小写)中的一个
^[A-Za-z]at$:只能匹配出三个字符,第一个字符是a-z(大小写都可以)中的一个
^[aeiou]at$:只能匹配出三个字符,第一个字符是aeiou中的一个
“[^]”:方括号“[^]”不匹配这个集合中任何一个字符。
^[^xyz]at$:只能匹配出三个字符,第一个字符是不能是xyz中的一个
重复符号“+”:表示前一模式可以被重复1次或n次。
^go+gle$:匹配gogle,google,gooogle,+号前一个字符重复至少一次。
^g[aeiou]+gle$:aeiou中的某一个字符重复一次以上都满足。
重复符号“*”:“*”表示前一模式可以被重复0次或n次。
^go*gle$:和+用法一致,只是包含了0次。(ggle、google、gooooooooooogle。。。。。。)
符号“?”:“?”表示前一模式可以被匹配0次或1次。
^go?gle$:只能匹配:ggle、gogle。
重复符号“{x,y}”
“{x}”表示前一模式模式可以被重复x次。
^go{2}gle$:o重复两次。
“{x,y}”表示前一模式模式可以被重复x到y次。
^go{2,4}gle$:o重复2到4次
“{x,}”表示前一字符模式可以被重复至少x次。
^go{2,}gle$:o重复2次级2次以上。
子表达式“( )”:“( )”可以指定一堆字符来匹配一个模式。分组
^(very )*large$:可以匹配:large、very large、very very large、very very very very large。。。。。
分支“|”:分支“|”用来指定几个规则只要匹配一个规则即成匹配。
^com$|^org$|^net$:能匹配的字符串(仅3个):com、org、net
^abc.(com|org|net)$:能匹配的字符串(仅3个):abc.com、abc.org、abc.net
转义符号“\”:如果要匹配“[”“^”“+”“)”等等有特殊含义的字符,可以用“\”做转义。
^1\*\(2\+3\)=6$:能匹配的字符串(仅1个):1*(2+3)=6
*/
}
</script>
</head>
<body>
</body>
</html>
|
|