1字符串
定义:定义一个变量,然后直接将字符串赋值给它。
var str ="abc123";
字符串实际上是字符组成的数组,所以数组的方法它基本都有。
(1)访问字符串里面的字符:
a.数组方式:str[i];
b.字符串特有的方式:charAt(i)。
(2)查找
a. 数组方式:indexof
b. 字符串方式:search()方法:传入参数(要搜索的子串),返回子串的第一个字符在父串的下标。这个方法对大小写敏感。
search方法的功能比indexof更强大,它可以使用正则表达式形式来查找。
(3)取子串
a. 数组方式:slice();
b. 字符串特有的方法;
substr(start,length);传入参数(第一个参数,开始截取的下标,如果没有第二个参数,它就一直取到最后)(第二个参数,截取的长度)
substring(start,end)传入两个参数,第一个参数,开始截取的下标,第二个参数,截取结束的下标。
(4)替换
数组方式:splice
字符串方式:replace()替换,传入的参数(第一个参数被替换的子串)(第二个参数是新的子串)
var str = "hello world";
str= str.replace("world","china");
alert(str);
toUpperCase():小写字母转化为大写字母
var str = prompt("请输入一个英文字符串"); //abc
str = str.toUpperCase();
alert(str); //ABC
toLowerCase():大写转化为小写。
var str = prompt("请输入一个英文字符串"); //ABC
str = str.toLowerCase();
alert(str); //abc
trim()方法:去除字符串首尾的空格符
var str = " 请输入一个英文字符串 ";
str =str.trim();
alert(str);
split(x):字符串的分割。用字符串“x”进行分割。分割之后是一个数组.
数组有一个toString方法,将数组转换成字符串,元素之间用逗号隔开
var a = "a b c";
var result= a.split(" ");
alert(result);//["a","b","c"]
2日期
定义:
//var d = new Date();
var d = new Date(2017,3,22,8,30,22);
不给参数,定义的日期为执行这条指令时那一刻的系统日期。
当然也可以指定年月日时分秒参数,但是要特别注意的是月从0开始,即0表示1月
修改日期分量:
setYear、setMonth、setDate……
获取日期分量
getYear、getMonth
getMilliseconds是获取毫秒分量
getTime获取的是从1970-1-1 00:00:00至指定日期所经历的毫秒数。
日期转换成字符串
var d = new Date(2017,3,22,8,30,22,500);
document.write(d.toString()+"<br>");
document.write(d.toDateString()+"<br>");
document.write(d.toTimeString()+"<br>");
document.write(d.toLocaleDateString()+"<br>");
document.write(d.toLocaleTimeString()+"<br>");
document.write(d.toUTCString()+"<br>");
日期运算
d1>d2
d1-d2:两个日期相隔的毫秒数
便捷计算某月天数的方法
var month = 2;
var d = newDate(2017,month,0);
document.write(d.getDate()+"<br>");
3 正则表达式
为什么要有正则表达式?
因为查找是一个比较复杂的东西,我们更加准确的快速找到自己想要的。
什么是正则表达式?
他可以定义一种字符串逻辑的公式,来和要查找的字符串做匹配,找到自己想要的。
定义规则:
1. 使用 /规则/修饰符
2. 新创建一个RegExp对象,给两个参数分别为规则和修饰符
var str ="HelloCoolDog";
var patt = /hellocooldog/i;
var patt1 = new RegExp("HELLO","i");
document.write(result);
常用的修饰符:
i:不区分大小写
<script>
var checkCode ="HelloCoolDog";
var str = prompt("请输入验证码:");
var patt = /hellocooldog/i;
var result = str.search(patt);
document.write(result);
</script>
g:全局匹配,从找到的下一个下标开始再继续往后查找,一直到字符串结束
var patt2 =/o/g;
var result = str.replace(patt2,"O");
document.write(result);
字符模式:
[Hel]:从里面字符中任意一个去匹配字符串。
var str ="1He2lo3lo4Coo5lD6og";
var patt = /[Hel]/g;
var result = str.match(patt);
document.write(result);
[0-9]:从里面数字中任意一个去匹配字符串
var str ="1He2lo3lo4Coo5lD6og";
var patt1 = /[0-9]/g
var result = str.match(patt1);
document.write(result);
[A-Z]:匹配所有的大写字母
[a-z]:匹配所有的小写字母
(a|x):匹配a或者x,a也能用[]来代替
var parr2 =([a-z] | [A-Z]);
常用的元字符:
/\w/g:查找单词字符包括所有字母和数字和下划线,w是word的缩写
/\s/g: 查找空白字符 s是space的缩写
<script>
var str = "1He2lo3lo4Coo5lD6og";
// var patt = /\w/g; //word
var patt= /\s/g;
var result = str.replace(patt,"&");
document.write(result);
</script>
/\d/g: 查找数字 d是digitaal的缩写
<script>
var str = "1He2lo3lo4Coo5lD6og";
// var patt = /\w/g; //word
// var patt = /\s/g; //s是空格space的缩写
var patt = /\d/g; //数字digital的缩写
var result =str.replace(patt,"&");
document.write(result);
</script>
常用的量词:
o+:找到一个或多个o
<script>
var str = "1He2lo3lo4Coo5lD6og";
var patt = /oo+/;
var result = str.match(patt);
document.write(result);
</script>
o*:找到0个或者多个o
var patt1 =/oo*/g; //匹配0个或者多个
o?:找到0个或者一个
var patt2 =/oo?/g;
o{3}:指定具体个数只有3个
var patt = /o{2}/g; //制定了o的个数
o{2,3}:指定一个有范围的区间最少2个,最多3个
var patt1 = /o{2,3}/g;
o{2,}:
var patt2 = /o{2,}/g;
^n: 匹配任何开头为 n 的字符串。
n$:匹配任何结尾为 n 的字符串。
RegExp:常用的两种方法:
Exec():返回的是找到符合正则表达式新的字符串
var str ="good afternoon";
var result = patt.exec(str);
document.write(result)
Test():返回的true或者false,当字符串满足正则表达式时为true否则为false。
var str =prompt("输入密码:");
var patt = /^([a-z]|[A-Z])\w{5,17}$/;
if(patt.test(str)){
alert("您输入的密码正确");
}else{
alert("您输入的密码不规范");
}
验证日期:
var patt =/^[0][1-9]|[1][0-2]$/;
var patt1 = /^([0][1-9]|[1][0-2])([0][1-9])|[1][0-9]|[2][0-9]|[3][0-1]$/;
var str = prompt("请输入日期");
if(patt.test(str)){
document.write("正确");
}else{
document.write("错误");
}