JavaScript基础——字符串

  一、字符串的介绍

    1.标志:引号(单引号 / 双引号)

    2.作用:展示信息

    3.注意事项:引号要配对存在,变量不能放在引号中

    4.创建方式:

      字面量:var  str = "" ;

      构造函数:var str = new String ("");

    5.字符串的遍历

      字符串也有索引和长度,可通过for循环遍历找到对应字符

  二、字符串的操作方法

    1.indexOf:获取数组中第一个从某个位置开始出现的字符或字符串中的第一个字符的索引;str.indexOf("a",7); 返回值:查询字符的索引,若没有则返回-1

        参数一为查找的字符或字符串

        参数二为索引,表示从该索引开始查询

        注意:若只有参数一,表示从索引0开始查询

    2.charAt:通过索引找字符;str.charAt(3);返回值:索引对应的字符

    3.charCodeAt:通过索引找对应字符的编码;str.charCodeAt(3);返回值:字符编码

    4.字符串的截取:slice,substr,substring (第一个参数均为起始位置的索引)返回值:截取的字符或字符串

      str.slice(2,7);   第二个参数表示位置,即索引,表示截取到索引为7(不包括7)的位置(注意:一个参数时表示从起始位置截取到最后)

      str.substr(2,7);   第二个参数表示个数,几个的意思,表示截取到索引为8的位置

      str.substring(2,7);第二个参数表示位置,即索引,表示截取到索引为7(不包括7)的位置 

    5.split:以特定符号将字符串分割为数组;str.split(",");返回值:分割后的数组
       参数:分割符(字符串中特定的字符);若为空则为空字符
 
    6.replace:将原字符串中指定字符串替换为指定字符串;str.replace("a","b");返回值:替换后的新字符串 
      参数一为原字符串中指定字符串
      参数二为指定字符串
 
    7.toLowerCase:将所有字符中的英文小写;str.toLowerCase( );返回值:小写字符串
 
    8.toUpperCase:将所有字符中的英文大写;str.toUpperCase( );返回值:大写字符串
 
    总结:1.字符串方法都不会改变原字符串
       2.数组与字符串都有的方法: slice    indexOf   concat
 
  三、字符与Unicode编码转换
 
    1.str.charCodeAt ( ):字符转换成Unicode编码
    
    2.String.fromCharCode(22269):Unicode编码转换成字符,参数为Unicode编码

  四、字符串的应用
// 1.随机取四位的验证码

    function randomStr(){
        var str = "";
        for(var i=0;i<4;i++){
            str += String.fromCharCode(random(97,122));
            str += String.fromCharCode(random(65,90));
            str += random(0,9);
        }
        // console.log(str);
        var rStr = "";
        for(var i=0;i<4;i++){
            var index = random(0,str.length-1)
            rStr += str[index];
        }
        return rStr;
    }

    console.log(randomStr());


    function random(a,b){
        return Math.round(Math.random()*(a-b)+b)
    }
//2.敏感词过滤
    var arr = ["abc","qwe","你"];
    var str = "你个abc,qwe了个qwe,啊你啊";

    for(var i=0;i<arr.length;i++){
        //方式一:for遍历字符串
        // for(var j=0;j<str.length;j++){
        //     str = str.replace(arr[i],"***");           
        //     if(str.indexOf(arr[i]) == -1){
        //         break;
        //     }
        // }
        //方式二:while遍历字符串
        while(str.indexOf(arr[i]) != -1){
             str = str.replace(arr[i],"***");
        }
    }
    console.log(str);
//3. aabccd统计每个字符出现的次数,结果显示{a:2, b:1, c:2, d:1}

    var str = "asdsnASASDASDasdahgadshgahqfg";
    var obj = {};

    for(var i=0;i<str.length;i++){
        if(obj[str[i]]){
            obj[str[i]]++;
        }else{
            obj[str[i]] = 1;
        }
    }
    console.log(obj);

    // 去重
    var s = ""
    for(var i in obj){
        s += i;
    }
    console.log(s);
//4.简易版表单验证
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <input type="text" id="txt">
</body>
<script>
//         1.不允许为空,有提示
//         2.不允许以数字开头
//         3.长度必须在6~20之间
    var txt = document.getElementById("txt");
    txt.onblur = function(){
        if(txt.value == ""){
            alert("不允许为空")
        }
        // if(!(txt.value[0] >= 0 && txt.value[0] <= 9)){
        // if(isNaN(txt.value[0])){
        if(parseInt(txt.value[0])){
            alert("不允许数字开头")
        }
        if(txt.value.length < 6 || txt.value.length > 20){
            alert("长度不符合")
        }
    }
</script>
</html>
        
 
    

       

    

原文地址:https://www.cnblogs.com/miaomiaolong2/p/12115733.html