字符的常用方法:
1.length属性,返回的是字符串的长度,空格也是字符
let s1 = "好好 学习"
console.log(s1.length); //输出5
2.charAt()方法,根据字符串中字符的索引(下标)获取对应的字符,注意:索引从0开始
let s2 = "HelloWorld"
console.log(s2.charAt(0)); //输出H
console.log(s2.charAt(3)); //输出l
获取字符串的中指定索引的字符,也可以通过[索引]的方式获取
console.log(s2[0]); //输出H
console.log(s2[3]); //输出l
3.charCodeAt()方法,用于获取字符串中指定位置字符的Unicode编码值
A -> 65 a -> 97 你 -> 20320
console.log(s2.charCodeAt(0)); //输出72
console.log(s1.charCodeAt(0)); //输出22909
4.concat()方法,用于拼接字符串,通常情况下,我们可以直接使用 加号 去拼接,该方法,可以同时拼接多个字符串数据
let s3 = "张三"
let s4 = "李四"
let s5 = "王五"
let s6 = s3.concat(s4)
console.log(s6); //输出张三李四
console.log(s3); //输出张三
let s7 = s3.concat(s4,s5);
console.log(s7); //输出张三李四王五
let s8 = s3+s4;
console.log(s8); //输出张三李四
let s9 = s3+s4+s5;
console.log(s9); //输出张三李四王五
5.fromCharCode()方法,用于将指定的Unicode编码转为指定字符,注意该方法是有String类型来调用的,该方法可以传递多个Unicode编码
console.log(String.fromCharCode(65)); //输出A
console.log(String.fromCharCode(65,66,67)); //输出ABC
console.log(String.fromCharCode(12345,33678,44778)); //输出〹莎껪
6.indexOf()方法,用于从字符串中返回指定字符串第一次出现的位置(注意:索引从0开始,找不到返回-1)
let str1 = "abc你好ccc你好ddd你好eee"
console.log(str1.indexOf('你好')); //输出3
console.log(str1.indexOf('你好呀')); //输出-1
7.lastIndexOf()方法,是从后往前找,找到后,下标是从前往后数(注意,如果找不到返回-1)
console.log(str1.lastIndexOf('你好')); //输出13
console.log(str1.lastIndexOf('你好呀')); //输出-1
8.slice()方法,用于截取指定区间范围内的字符串,该方法需要传两个参数,分别是起始位置和结束位置,能够取到起始位置,取不到结束位置
注意:slice()方法的参数,可以传负数,表示从后往前数索引
console.log(str1.slice(3,6)); //输出你好c
如果只传一个参数,从起始位置往后面全部截取
console.log(str1.slice(3)); //输出你好ccc你好ddd你好eee
console.log(str1.slice(-6,-3)); //输出d你好
9.substring()方法,用于截取指定区间范围内的字符串,该方法需要传两个参数,分别是起始位置和结束位置,能够取到起始位置,取不到结束位置
注意:substring()方法参数,只能传正数,不能传负数
console.log(str1.substring(3,6)); //输出你好c
console.log(str1.substring(3)); //输出你好ccc你好ddd你好eee
console.log(str1.substring(-6,-3)); //无输出
10.substr()方法,也是用于截取字符串,它的两参数分别是:起始位置和截取长度
console.log(str1.substr(3,6)); //输出你好ccc你
只传1个参数,就表示从起始位置到最后全部截取
console.log(str1.substr(3)); //输出你好ccc你好ddd你好eee
11.toLowerCase()方法,用于返回字符串转的小写版本,注意:不是改自身
toUpperCase()方法,用于返回字符串的大写版本,注意:不是改自身
let str2 = 'AbCdEfG'
console.log(str2.toLowerCase()); //输出abcdefg
console.log(str2.toUpperCase()); //输出ABCDEFG
12.trim()方法,用于去除字符串两端空格
let str3 = ' abc cba '
console.log(str3.length); //输出17
注意:trim()方法,只能去掉字符串两端的空格,中间的空格不能去掉
console.log(str3.trim()); //输出abc cba
练习1
输入邮箱地址,验证邮箱格式是否正确,邮箱格式:必须包含@符号,必须包含.符号,.符号必须在@符号的后面,而且中间至少再隔一位,@符号不能是第一位,.符号不能是最后一位,比如:zhangsan@123.com
let email = prompt('请输入邮箱:');
//获取邮箱中@符号的位置
let a = email.indexOf('@');
// 获取邮箱中最后一个.符号的位置
let b = email.indexOf('.');
// a>0 表示必须包含@符号,并且还不能是第一位
// b<email.length-1 表示必须包含.符号,并且还不能是最后一位
// b-1>a 表示.符号必须在@符号的后面,而且中间至少隔一位
if(a>0 && a<email.length-1 && b-1>a){
alert('邮箱格式正确')
}else{
alert('邮箱格式错误')
}
练习2
输入登录名和密码,要求登录名长度为2-4位,密码长度是6-10位,用户名不能是全数字
let id = prompt('请输入登录名(2-4位):');
let pwd = prompt('请输入密码(6-10位):');
let a = id.length; //登录名长度
let b = pwd.length; //密码长度
//先判断登录名
if(a>=2 && a<=4 && isNaN(id)){
//再判断密码
if(b>=6 && b<=10){
alert('登录成功')
}else{
alert('密码长度是6-10位')
}
}else{
alert('登录名长度必须是2-4位,登录名不能是全数字')
}
练习3
输入手机号码,要求长度必须是11位,第一位必须是1,后面的必须是数字
let phone = prompt('请输入手机号:');
let len = phone.length; //获取手机号的长度
let first = phone[0]; //获取第一位数字
let next = phone.slice(1); //从第二位到最后全部截取
//粗略的判断
if(len==11 && first==1 && !isNaN(next)){
alert('手机号码正确')
}else{
alert('手机号码错误')
}
//详细的判断
if(len!=11){
alert('手机号码必须是11位')
}else if(first!=1){
alert('手机号码的第一位必须是1')
}else if(isNaN(next)){
alert('手机号码必须是全数字')
}else{
alert('手机号码正确')
}