1.String对象是JavaScript的内置对象
2.String对象的属性
(1)length属性,返回String对象的长度
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>String对象</title>
</head>
<body>
<script language="javascript">
window.onload = function(){//网页加载后调用匿名函数
str = new String("abcdef");//创建了一个String对象
var len = str.length;
document.write(len);//网页上输出字符串的长度
}
</script>
</body>
</html>
这段代码的结果是在浏览器上显示6
3.String的方法
(1)charAt(n)
这个方法返回字符串的第n下标的字符
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>String对象</title>
</head>
<body>
<script language="javascript">
window.onload = function(){
str = new String("abcdef");
var obj1 = str.charAt(1);//这里显示下标为1的元素即b
var obj2 = str.charAt(1.0);
//这里小数也是能取到值的,1.0就是1,后面小数直接删去不看即可
//同理,例如2.2也就是2,3.9也就是3
var obj3 = str.charAt(-1);//如果是负数,就返回空字符串
var obj4 = str.charAt(10);//没有下标为10的元素,所以返回空字符串
document.write(obj1,obj2,obj3,obj4);
}
</script>
</body>
</html>
注意:1.如果下标溢出,就会输出空字符串
2.如果输入的是小数,就会去掉小数
3.如果输入的是负数,就返回空字符串
(2)indexOf(str[,index])
这个方法返回字串str的首字符的位置,index表示从哪处开始寻找,从此处向右寻找,若是没找到就返回-1
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>String对象</title>
</head>
<body>
<script language="javascript">
window.onload = function(){
str = new String("abcdef");
var pos1 = str.indexOf("bcd");//b位于下标1,所以返回1
var pos2 = str.indexOf("bcd",1);
//1表示从下标1处开始寻找,包括1这个位置,所以也输出1
var pos3 = str.indexOf("bcd",2);
//但是2处就找不到了bcd的位置了,因为这样一个字串放在这其实可以看成b的位置,向右找不到,所以返回了-1
var pos4 = str.indexOf("bcd",-100);//如果输入的index是负数,则没有效果,输出1
document.write(pos1,pos2,pos3,pos4);
}
</script>
</body>
</html>
注意:index输入负数就无效,但是还是有输出,输出和没有index的效果相同
如果输入小数,和上方charAt一致,也是省去小数
(3)lastIndexOf
返回最后一次出现字串的位置,如果输入的是字串,也是按照第一个字符来寻找,index表示从哪开始,从右往左读,没找到就输出-1
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>String对象</title>
</head>
<body>
<script language="javascript">
window.onload = function(){
str = new String("abkckdekf");
var pos1 = str.lastIndexOf("kf");//最后一个kf的k的下标为7
var pos2 = str.lastIndexOf("k",6);
//从右往左读,所以与indexOf不同,这样输出的是4即6向左最近的k
var pos3 = str.lastIndexOf("k",6.0);//输出与小数没有的一致
var pos4 = str.lastIndexOf("k",-1);//这个输出的是-1,负数就是没找到
var pos5 = str.lastIndexOf("k",100);
//这个输出的是7,说明从下标为100的位置向前找能找到
document.write(pos1,pos2,pos3,pos4,pos5);
}
</script>
</body>
</html>
注意:index输入负数就有效,输出-1,但是index为超出范围的值后能正常输出
如果输入小数,和上方charAt一致,也是省去小数
indexOf和lastIndexOf总结
1.都是找字串的首字符的下标,但是indexOf是从左向右找,lastIndexOf从右向左找
2.index表示查找的位置,如果超出范围并不会报错,在indexOf中-1就可以想象为字符串最左边还有一个左边的值,从那个数开始找,所以效果与最左边开始找一致,在lastIndexOf中,100表示在字符串左边第100位有值(假想),然后效果与没有也是一样的
3.如果index输入的是小数,删去小数即可,例如1.1看成1
4.index的值是包括在查找范围里的,例如index输入2,2也包括在查找范围内
5.如果没有找到就输出-1
(4)link(href)
创建链接,有返回值,原字符属性不变
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>String对象</title>
</head>
<body>
<script language="javascript">
window.onload = function(){
str = new String("点击进入")
var link = str.link("...")//此处网址省略,总之输入一个网址就可以在网页上点击进入
document.write(link);
}
</script>
</body>
</html>
具体效果如图
(5)match(正则表达式)
如图,match中写入正则表达式,在JavaScript中,正则表达式通常使用斜杠(/)包围起来,而不是双引号(“”)或单引号(‘’),并且匹配出的是第一个满足的数字
正则表达式使用方法简写如下:
元字符:
指的是具有特殊意义的专用字符:
^开始
$结束
.匹配所有字符(除了\n)
\w匹配字母,数字,下划线
\W匹配非字母,非数字,非下划线
\s匹配任意空白字符
\S匹配任意非空白字符
\d匹配任意十进制数
限定符:
限定匹配的次数:
?前面的字符0次或1次
+前面的字符1次或多次
*前面的字符0次或多次
{n}前面字符n次
{n,}前面至少n次
{n,m}前面最少n最多m
[.?!]/[0-9]区间字符,匹配[]内的元素
^排除[]不在的字符[^0-9]匹配除此之外的字符
|选择字符,或者关系
\转义字符,\.将.转为正常点
[\u4e00-\u9fa5]匹配任意的汉字
()分组改变限定符的作用six|fourth和(six|four)th分别匹配six和fourth以及sixth和fourth
(6)replace(原字符的正则表达式,转换后的字符)
这样就把第一个匹配到的数值改为t
(7)search(正则表达式)
search的返回值是匹配到的字符的下标位置,如果没找到就返回-1
匹配a到z,此时第一个a出现在下标3
找不到空格,所以输出-1
(8)slice(m,n)将字符的下标m到n的字符串提取出来,并且把这个字符串放到新的字符串中
注意:1.slice左取右不取
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>String对象</title>
</head>
<body>
<script language="javascript">
window.onload = function(){
str = new String("123abc456tfg789");
var s = str.slice(1,-1);//这里的-1与上面的-1不同,这里的-1就是指最后一个字符
//输出23abc456tfg78
document.write(s);
}
</script>
</body>
</html>
2.-1的含义改变为最后一个字符
(9)split(分隔符)
将字符串分割为字符串数组
如图,分隔后原字符分隔符消失,变为逗号
(10)substring(m,n)
取出m到n的子字符串
同理,取左不取右
(11)toUpperCase(),toLowerCase()表示变大写和变小写
toLowerCase同理。