JS字符

字符的常用方法:

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('手机号码正确')

        } 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355