标签:
贪婪模式尽可能多的匹配 (“{m,n}”、“{m,}”、“?”、“*”和“+”)
惰性模式尽可能少的匹配 (“{m,n}?”、“{m,}?”、“??”、“*?”和“+?”)
alert();
一员操作符
++ 数值加一 分前++与后++ -- 数值减一 分前--与后--
例:var age=29;
++age;//30 age++;//31
前++与后++的区别:
var age=29;
var num=++age;//num=30 (先加一再赋值给num)
var num=age++;//num=29 (先赋值给num再加一) (--与++同理)
==(是否等于)!=(不等于)===(全等)!==(不全等)
+= 累加并赋值语句 例: i+=1 等同于 i=i+1
逻辑操作符
!(逻辑非)&&(逻辑与;true&&false 第一个值为true则返回第二个值,第一个值为false则返回第一个值,第一个值为false则第二个值将不在计算)
||(逻辑或;与逻辑与相反,true&&false 第一个值为true则返回第一个值,第一个值为false则返回第二个值,第一个值为true则第二个值将不在计算)
循环语句
break 跳出整个循环语句 continue 跳出当前循环语句 继续后面的循环
数值
Math.abs(x)Math.abs(5)//5 Math.abs(-5)//5 绝对值
Math.round(x)Math.round(1.1)//1 Math.round(1.9)//2 四舍五入
Math.ceil(x) Math.ceil(1.1)//2 Math.ceil(1.9)//2 向上取整
Math.floor(x) Math.floor(1.1)//1 Math.floor(1.9)//1 向下取整
Math.max([value1[,value2[,...]]]) Math.max(1,2)//2 Math.max(-1,-2,-3)//-1 取最大值
Math.min([value1[,value2[,...]]]) Math.min(1,2)//1 Math.min(-1,-2,-3)//-3 去最小值
Math.random() Math.random()//0.9676457865 获取大于等于0小于1的随机数
parseInt(string.radix)取整
parseInt(‘1.1‘)//1
parseInt(‘1.9‘)//1
parseInt(‘1b2.4‘)//1
parseInt(‘www‘)//NaN
parseFloat(string)可取小数点
parseFloat(‘100.1‘)//100.1
parseFloat(12.4b5)//12.4
parseFloat(‘www‘)//NaN
Number(value)取可识别数值
Number(‘100.1‘)//100.1
Number(‘12.4b5‘)//NaN
Number(‘www‘)//NaN
num.toFixed(digits)选取几位小数点
(100.123).toFixed(2)//"100.12"
(100.123).toFixed(0)//"100"
字符串
用单/双引号引起来的内容都称之为字符串,也可为空的字符串“”
str.length
micromajor.length //10
str.charAt(index)
"micromajor".charAt(0) //"m"
if(userName.charAt(0) == "-"){
alert("昵称不能以“-”开头");
}
str.indexOf(searchvalue)
"micro-major".indexOf("-") //5
"micro-major-web".indexOf("-") //5
"micro-major".indexOf("major") //6
"micromajor".indexOf("-") //-1
str.search(regexp)
"micromajor163".search(/[0-9]/) //10
"micromajor163".search(/[A-Z]/) //-1
if(userName.search(/[0-9]/) != -1){
alert("昵称不能含有数字");
}
str.matvh(regexp)
"micromajor163".match(/[0-9]/) //["1"]
"micromajor163".match(/[0-9]/g) //["1","6","3"]
"micromajor163".match(/[A-Z]/) //null
str.replace(regexp|substr,newSubstr|function)
"micromajor163".replace("163","###") //"micromajor###"
"micromajor163".replace(/[0-9]/,"#") //"micromajor#63"
"micromajor163".replace(/[0-9]/g,"#") //"micromajor###"
"micromajor163".replace(/[0-9]/g,"") //"micromajor"
str.substring(indexA[,indexB])
"micromajor".substring(5,7) //"ma"
"micromajor".substring(5) //"major"
str.slice(beginSlice[,endSlice])
"micromajor".slice(5,7) //"ma"
"micromajor".slice(5) //"major"
"micromajor".slice(1,-1) //"icromajo"
"micromajor".slice(-3) //"jor"
str.substr(start[,length])
"micromajor"substr(5,2) //"ma"
"micromajor".substr(5) //"major"
str.split([separaator][,limit])
"micro major".split(" ") //["micro","major"]
"micro major".split(" ",1) //["mocro"]
"micro2major".split(/[0-9]/) //["micro","major"]
str.toLowerCase()
"micromajor".toLowerCase() //"micromajor"
str.toUpperCase()
"micromajor".toUpperCase() //"MICROMAJOR"
字符串相加
"0571" + "-" + "88888888" //0571-8888888
var area = areaInput.value; //"0571"
var tel = telInput.value; //"88888888"
var number = area + ‘-‘ + tel; //"0571-8888888"
String()转字符串
String(163)//"163"
String(null) //"null"
转义
"micro\"major" //"micro"major"
"micro\\major" //"micro\major"
"micro\tmajor" //"micro major" t表示tab
\n 表示换行
创建对象
var car = new Object()
vae car = ()
访问对象可以通过.和[]
增加属性和方法
var car = {
color : "red",
run : function(){alert("run")}
};
car.type = "suv";
car.stop = function(){alert("stop")};
修改属性和方法
var car = {
color : "red",
run : function(){alert("run")}
};
car.color = "white";
car.run = function(){alert("run2")};
删除属性和方法
var car = {
color : "red",
run : function(){alert("run")}
};
delete car.color;
car.color //undefined
obj.constructor(获取对象的构造函数)
var car = {
color : "red",
run : function(){alert("run")}
};
car.constructor; //Object
obj.toString()对象转字符串
var num = new Number(123);
num.toString() //"123"
obj.velueOf()获取对象原始值
var num = new Number(123);
num.velueOf() //123
obj.hasOwnProperty()对象自己所拥有的属性
var car = {
color : "red",
run : function(){alert("run")}
};
obj.hasOwnproperty("color") //true
obj.hasOwnproperty("logo") //false
创建数组
var array = new Array();
var array = [];
var array = [1,6,3];
arr.length数组长度
表示数组里有多少元素
获取数组元素
var students = [
{id:1,score:80},
{id:1,score:50},
{id:1,score:70}
];
students[0]; //{id:1,score:80}
students[0].score; //{80}
修改数组元素
students[1].score = 60;
arr.indexOf(searchElement)数组中对应的索引位置
var telephones = [110,120,114];
telephones.indexOf(120); //1
telephones.indexOf(119); //-1(没有)
arr.forEach(callback)数组中所有元素找一遍
var editScore = function(item(数组里的元素),index(索引位置),array(数组)){
item.score += 5;
};
students.forEach(editScore);
arr.reverse()数组倒序排列
students.reverse();
students[0].score; //70
arr.sort([compareFunction])对数组进行排序
var byScore = function(a,b){
return b.score-a.score;
};
students.sort(buScore);
排序将成为[id:1,id:3,id:2]
回调函数不传的情况下会按照万国码的顺序排列
arrpush(element1,...,elementN)在已有数组中往后添加元素
students.push({id:4,score:90},{id:5,score:60});
arr.unshift(element1,...,elementN)在已有数组中往前添加元素
students.unshift({id:4,score:90});
arr.shift()获取数组中第一个元素并且原来的数组会被删掉
students.shift(); //{id:1,score:80}
arr.pop()获取数组中最后一个元素并且原来的数组会被删掉
arr.splice(index从哪里开始,howmany删多少,[,ele1[,...[,eleN]]]这个位置加入多少)数组中任意位置添加或删除数组
students.splice(1,1,{id:4,score:90});删除且添加
students.splice(1,1)只删除;(1,0,{id:4,score:90});只添加不删除
arr.slice(begin[,end])复制拷贝数组中的元素;开始位置包含,结束位置不包含
var newStudents = students.slice(0,2);
[
{id:1,score:80},
{id:2,score:50}
]
var newStudents = students.slice(0);0代表全部拷贝
arr.concat(value1,...,valueN)数组连接
arr.join([separator])数组拼成字符串
var emails = ["wq@163.com","gq@163.com","xl@163.com"];
emails.join(";"); //"wq@163.com;gq@163.com;xl@163.com"
arr.map(callback)将内容加入数组内
var scores = [60,70,80,90];
var addStore = function(item,index,array){
return item+5;
};
scores.map(addScore); //[65,75,85,95]
arr.reduce(callback,[initia|Value])
var sum = function(previousResult,item,index,array){
return previousResult+item.score;
};
students.reduce(sum,0); //200
函数
参数为原始类型:值传递 不会修改原参数
参数为对象类型:引用传递 会修改原参数(对象)
作用域
DATE日期
new Date();
2015年12月5日 new Date(2015,11,5);
date.getXXX()
var date = new Date(2015,7,20,14,57,18)
date.getFullYear(); //2015
date.getMonth(); //7
date.getDate(); //20
date.getHours(); //14
...
date.setXXX()设置年份中的任意时间
var date = new Date(2015,7,20,14,57,18)
date.setFullYear(2046); //2046-8-20 14:57:18
date.setMonth(2); //2046-3-20 14:57:18
....
date.setDate(35); //2015-9-4 14:57:18
date.setHours(100); //2015-9-8 04:57:18
求天数
new Date(2001,2,0) 2001-2-28 00:00:00
new Date(2001,3,0) 2001-3-31 00:00:00
JSON JavaScript Object Notaion(轻量级)
与JS的区别就是属性名用双引号引起来
JSON.parse(text[,reviver])将JSON数据转化成JS数据
"id":1,
"nick":"春鸟秋虫",
"avatar":"1.jpg",
"tags":null,
"authed":false
var user = JSON.parse(userJson);
user:Object
authed:false
avatar:"1.jpg"
id:1
nick:"春鸟秋虫"
tags:null
JSON.stringify(value)将json转化成字符串
var a = JSON.stringify({name: "jerry", age: 1, nick: undefined, tags: null});
‘{"name":"jerry","age":1,"nick":undefined,"tags":null }‘
RegExp正则表达式
描述字符串规则的表达式
- /pattern/attrs
regexObj.text(str)
测试正则表达式与指定字符串是否匹配
/13566668888/.text(‘13566668888‘) //true
/13566668888/.text(‘1356666888‘) //false
/13566668888/.text(‘x13566668888y‘) //true
锚点
匹配一个位置
^ :起始位置 /^http:/
$ :结尾位置 /\.jpg$/
\b:单词边界 /\bis\b/
/^13566668888$/
/^13566668888$/.text(‘x13566668888y‘) //false
字符类
匹配一类字符中的一个
[abc]:a或b或c [^a-z]:非字母的一个字符
[0-9]:一个数字 [^0-9]:非数字的一个字符
[a-z]:一个字母
. :任一字符(换行除外)
元字符
具有特殊意义的字符 ^代表非
^、$、\b
\d:[0-9] \D:[^\d]
\s:空白符 \S:[^\s]
\w:[A-Za-z0-9] \W:[^\w]
量词
出现的次数
{m,n}:m到n次
*:{0,}
?:{0,1}
+:{1,}
量词匹配电话号码 /^1\d{10}$/ /^1\d{10}$/.text(‘13512345678‘); //true
转义符
需要匹配的字符是元字符
/^http:\/\// /http:///
/@163\.com$/ /@163.com$/
多选分支
或
/thi(c|n)k/
捕获
保存匹配到的字符串 日后再用
():捕获
(?:):不捕获
使用:
$1,$2,...
api参数或返回值
str.match(regexp)
获取匹配的字符串
str.replace(regexp,replacement)
替换一个子串
var str = ‘The price of tomato is 5,the price of apple is 10.‘;
str.replace(/(\d+)/g,‘$1.00‘);
The price of tomatoes is 5.00,the price of apple is 10.00.
regexpObj.exec(str)
更强大的检索
更详尽的结果:index
过程的状态:lastindex
标签:
原文地址:http://www.cnblogs.com/nieying/p/5611651.html