系列课程目录
第十讲 JavaScript对象编程(六)
目录
前言
JavaScript String对象提示:以下是本篇文章正文内容,下面案例可供参考
一、String对象
1.什么是String对象
String对象一般用对字符串的储存和操作。是一种极其常用的对象。
- 创建String对象
var str = new String('Hello World')
- String对象属性--length属性
str.length // 11
- 是否new的类型检查
var a = 'hello'
var b = new String('hello')
typeof a //String
typeof b //Object
可以看到直接赋值的a类型为String类型,通过new赋值的b类型为Object类型。
JS可以自动识别字符串并在操作时将String类型转换为Object类型。
2.String对象访问
- 下标访问
var a = 'hello'
a[1] //'e'
- 标准访问方式charrAt()
var a = 'hello'
a.charAt[1] //'e'
字符串的不可变性
在JavaScript中,字符串的值是不可变的,这意味着一单字符串被创建就不能被改变。
var a ='123'
a[0] = '0'
console.log[a]// '123'
无法改变,但可以重新赋值
var a = '123'
a = '023'
console.log[a]//'023'
3.String对象的修改
原始数据类型的字符串无法修改,但可以使用String对象的replace()方法进行修改
- replace()
str.replace(要修改的字符,替换后的字符)
- 无法修改原字符串,只是返回一个新字符串
var a = '123'
var b = a.replace('1','0')//b的值为"023"
- 替换的值可以为空
var a = '123'
var b = a.replace('1','')//b的值为"23"
- 可以对多个字符进行操作
var a = '1234567'
var b = a.replace('123','0123')//b的值为'01234567'
4.String对象的分割
split()传入一个分隔符作为参数,以该分隔符为标准,将字符串进行分割并存入一个新数组并返回
var a = '2021-4-6'
var b = a.split('-')//b:['','2021','4','6','']
注意分隔符的位置
var a = '-2021-4-6-'
var b = a.split('-')//b:['','2021','4','6','']
分隔符可以为空
var a = '123'
var b = a.split('')//b:['1','2','3']
第二个参数可选,代表分割后数组的最大长度
var a = '2021-4-5'
var b = a.split("-",2)//b:["2021",'4']
5.String对象常用方法
- indexOf()
indexOf()返回要查找的字符第一次出现的位置下标,若未找到返回-1
var a = '1234567'
a.indexOf('3')//返回2
a.indexOf('8')//返回-1
- toLowerCase
toLowerCase把字符串转为小写,不会修改原字符串
var a = 'ABC'
var b = a.toLowerCase()//b:"abc",a:"ABC"
- toUpperCase()
toUpperCase()把字符串转为大写,不会修改原字符串
var a = 'abc'
var b = a.toUpperCase()//b:"ABC",a:"abc"
6.String对象的截取
- trim()
trim()移除空白符(空格、制表符、换行符),只对头尾操作,不会修改原字符串
var a = ' a b c '
var b = a.trim()//b:'a b c',a:'a b c'
- slice()
与数组的slice()方法一致
- substring()
该方法与slice类似,但参数不能使用负数,若参数为负会被当做0看待
var a = '1234567'
var b = a.substring(2)//b:'34567',a:'1234567'
var b = a.substring(2,5)//b:'345',a'1234567'
7.String对象的合并
concat()将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回。 concat 方法并不影响原字符串。
var a = '123'
var b = '456'
var c = a.conocat(b)//c:'123456',a:'123'
二、课堂作业
1.按照要求完成任务
如下(示例):
2.解析代码
- 任务10-1
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<input type="text" style="width: 150px;" placeholder="标准格式为:yyyy-mm-dd" name="" id="vl" value="" />
<input type="button" name="" id="" value="check" onclick="yz()" />
<script type="text/javascript">
function yz() {
var v = document.getElementById("vl").value
var arr = v.split("-")
if (arr.length == 3 && (!isNaN(arr[0])) && (!isNaN(arr[1])) && (!isNaN(arr[2])) && (Number(arr[0]) > 1900)) {
if (Number(arr[2]) >= 1 && Number(arr[2]) <= 9 && arr[2].substr(0, 1) == "0") {
switch (arr[1]) {
case "01":
case "05":
case "07":
case "08":
case "10":
case "12":
case "03":
if (Number(arr[2]) <= 31 && Number(arr[2]) > 0) {
alert("输出正确")
} else {
alert("输出错误")
}
break;
case "04":
case "06":
case "09":
case "11":
if (Number(arr[2]) <= 30 && Number(arr[2]) > 0) {
alert("输出正确")
} else {
alert("输出错误")
}
break;
case "02":
if (Number(arr[0]) % 4 == 0 && Number(arr[0]) % 100 != 0 || Number(arr[0]) % 400 == 0) {
if (Number(arr[2]) <= 29 && Number(arr[2]) > 0) {
alert("输出正确")
} else {
alert("输出错误")
}
} else {
if (Number(arr[2]) <= 28 && Number(arr[2]) > 0) {
alert("输出正确")
} else {
alert("输出错误")
}
}
break;
default:
alert("输出错误");
break;
}
}else{
alert("输出错误");
}
} else {
alert("输出错误");
}
}
</script>
</body>
</html>