字符串
定义:定义一个变量,然后直接将字符串赋值给它。
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"]
日期
定义:
//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>");
正则表达式
定义规则:1使用/规则/修饰符
var patt= /hellocooldog/i;
2 创建一个RegExp对象,给两个参数分别为规则和修饰符
var patt1 = new RegExp("hello","i");
为什么要有正则表达式?
因为查找是一个比较复杂的东西,我们更加准确快速找到自己想要的
什么是正则表达式?
他可以定义一种字符串逻辑的公式,来和要查找的字符串
常用的修饰符:
i,不区分大小写
g,全局匹配,找到一个不停止,一直找完。
var str ="hellocooldog";
var patt2=/o/g;
var result= str.replace(patt2,"O");
document.write(result);
[]找到括号里的任意一个,返回一个数组类型
[0-9],匹配0-9的任意数字
[a-z],匹配小写的a-z
[A-Z],匹配大写的A-Z
var str="1H2e3l4l5o6C7o8o9lDog";
var patt = /[0-9]/g;
var result= str.match(patt);
document.write(result);
输出:12456789
var str="1H2e3l4l5o6C7o8o9lDog";
var patt = /[a-z]/ig;
var result= str.match(patt);
document.write(result);
| 或,([a-z]|[A-Z]),匹配小写的a-z或者大写的A-Z
常用的元字符:
\w,word的缩写,单词字符,包括字母,下划线,数字
var str="_H1e2lloCoolDog";
var patt = /\w/g;//word
var result= str.match(patt);
document.write(result);
\s,空格space,
\d,数字digital
量词:
+,找到一个或多个
var patt= /n+/g;
*,匹配0个或多个
var patt1=/oo*/g;
?,匹配0个或者1个
var patt2=/oo?/g;
{n},指定具体的个数,如果没有找到返回null
var patt= /o{3}/g;
最少两个最多3个
var patt1= /o{2,3}/g;
最少两个
var patt1= /o{2,}/g;
^,必须以什么什么开头
%,必须以什么结束
//请输入一个不少于6位不多于18位的密码,只能输入字母数字和下划线,字母开头
var password= prompt("请输入密码:");
var patt =/([a-z]|[A-Z])\w{5,17}/;
var result=password.match(patt);
document.write(result);
RegExp常用的两种方法:
exec(),返回的是找到符合正则表达式新的字符串
var str="good afternoon"
var patt = /\w+/g;
var result= patt.exec(str);
document.write(result);
test():满足表达式时返回true,不满足返回false
var password= prompt("请输入密码:");
var patt= /([a-z]|[A-Z])\w{5,17}/;
if(patt.test(password)){
alert("规范");
}else{
alert("不规范");
}