字符串方法

 <!-- 
 - 创建字符串
var str = 'hello' 
var str1 = new String('hello')

- 访问字符串中字符
通过字符串索引号访问 
'hello'
 01234

str[0]

- 字符串长度- 字符个数
 length属性
  str.length

 - 字符串遍历- 访问字符串的每个字符
 循环遍历 

 - 包装对象
 基本数据类型
number string boolean undefined null
           复杂数据类型
Object Array String

=> 通过点语句访问字符串属性和方法时,会转换成对象, 使用完之后又转换回来, 包装类型对象
var str = 'hello' //string
str.length  

number -> Number
boolean -> Boolean

              

     -->
</head>

<body>
    <script>
var str = 'hello'       // 字面量方式
// var str1 = new String('hello')  //构造函数方式
// var obj = {}
// var obj1 = new Object()
// var arr = []
// var arr1 = new Array()
// console.log(str, '  str1 ',str1);

// console.log( str[1] );
console.log('字符串长度 ', str.length);

for(var i = 0; i < str.length; i++){
  console.log(str[i]);
        }
<!-- 
        字符串常用方法:
           charAt(索引号)
             => 返回指定索引位置的字符
           indexOf(字符)
             => 返回字符所在索引号
             => 如不存在返回-1 
           lastIndexOf(字符)
             => 返回最后一个字符所在索引号
             => 如不存在返回-1 

           substring(起始索引号,结束索引号)
             => 返回起始索引号和结束索引号之间的子字符串,不包括结束索引字符
            substring(起始索引号)
              => 返回从起始索引号开始后面所有字符串

           substr(起始索引号,字符个数)
              => 返回从起始索引位置开始指字符个数的子字符串
           replace(字符串1,字符串2)
              => 用后面的字符串2替换前面的字符串1

           split('分割符')
             => 分割字符串,将分割之后的字符存入数组返回

            concat('拼接字符串')
              =>拼接字符串返回

            trim()
             => 方法删除字符串两端的空白符
             => 返回去掉空格的新字符

     -->
</head>

<body>
    <script>
        var str = 'hello'
        //01234 
        // var c1 = str.charAt(1)
        // console.log('c1 :',c1);

        var index = str.indexOf('l')
        console.log('index :', index);

        var lastIndex = str.lastIndexOf('l')
        console.log('lastIndex :', lastIndex);

        var sub1 = str.substring(1, 3)
        console.log('sub1 :', sub1);

        var sub2 = str.substring(1)
        console.log('sub2 :', sub2);

        //示例1 ?所在索引位置, 在使用substring截取
        var url = 'http://www.baidu.com?username=admin' //username=admin
        var index1 = url.indexOf('?')
        var sub3 = url.substring(index1 + 1)
        console.log('sub3 :', sub3);

        var sub4 = str.substr(1, 3)
        console.log('sub4 :', sub4);


        var str = "Visit Microsoft!"
        var sub5 = str.replace('Visit', "school")
        console.log('sub5 :', sub5); // school Microsoft!

        var str1 = 'javascript-html-css'
        var arr = str1.split('-')
        console.log('arr :', arr); // ['javascript', 'html', 'css']

        var str = 'hello'
        var newStr = str.concat('world')
        console.log('newStr ', newStr);


        var s1 = ' admin '
        console.log(s1.length, 's1 :', s1.trim().length);


        var url1 = 'http://www.baidu.com'
        var isOk = url1.startsWith('http')
        console.log('isOk :', isOk);

        var isOk1 = url1.endsWith('com')
        console.log('isOk1 :', isOk1);

        var s2 = 'hello'
        var str2 = s2.toUpperCase() // HELLO
        console.log('str2 ', str2);

        var s3 = 'HELLO'
        var str3 = s3.toLowerCase() // hello
        console.log('str3 ',str3);

        // if(str.toLowerCase() == 'hello'){
        // }

练习

/* 
          1. 反转字符串  abcdefg  => gfedcba

          2. 已知字符串 'abcefMMaveqeripMMaeererMMda'  替换大字MM为*号   'abcef**aveqerip**aeerer**da'

          3. 用javascript编程实现,字符串分割返回数组, 'html-css-javascript'=>['html','css','javascript']
        */

        /* 
           1. 反转字符串  abcdefg  => gfedcba
              思路: 从最一个字符串开始往前面遍历,将字符进行拼接 
                    
        */
        function reverseStr() {
            var str = 'abcdefg' // => 'gfedcba'
            //        0123456
            var newStr = ''

            var len = str.length //7
            for (var i = len - 1; i >= 0; i--) { //i:6,5
                var item = str.charAt(i) //item: g, f
                newStr = newStr + item // 'g'+'f' 'gf' 
            }
            console.log(newStr);
        }

        // reverseStr()
        /*
           var arr = [a,b,c,d,e,f,g]
           arr.reverse()
        */
        function reverseStrTwo() {
            var str = 'abcdefg' // => 'gfedcba'
            var arr = str.split('') //字符串->数组
            arr.reverse() //反转
            var newStr = arr.join('') //数组->字符串
            console.log(newStr);
        }

        // reverseStrTwo()

        /* 
           过滤敏感词
              ['xx','yy','MM']
              
             
           2. 已知字符串 'abcefMMaveqeripMMaeererMMda'  替换大字MM为*号   'abcef**aveqerip**aeerer**da'
           分析:   replace('MM','**')
            判断字符中没有某个字符
              str.indexOf('MM') == -1
        */
        function replaceStr() {
            
            //str.replace('MM', '**') // 'abcef**aveqeripMMaeererMMda'
            // newStr = newStr.replace('MM','**') //abcef**aveqerip**aeererMMda
            // newStr = newStr.replace('MM','**')
            
            var str = 'abcefMMaveqeripMMaeererMMda'
            while(str.indexOf('MM') != -1){
                str = str.replace('MM','**') //  'abcef**aveqerip**aeerer**da'
            }
            console.log(str);
        }

        // replaceStr()

        function replaceStrTwo(){
            var str = 'abcefMMaveqeripMMaeererMMda' // '[abcef, aveqerip, aeererMMda]'
            var arr = str.split('MM')
            var newStr = arr.join('**')
            console.log('newStr :',newStr);
        }

        replaceStrTwo()
上一篇:wemos D1 arduino物联网开发板应用笔记4-玩转定时器


下一篇:一分快三大小怎么判断规律找57568312