js-字符串

Posted ……勇敢妞妞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js-字符串相关的知识,希望对你有一定的参考价值。

字符和字符串的创建

字符串 获取和设置一段文本

创建字符串的方式:
(1) 字面量创建 => 快捷创建
(2) 构造函数创建

 var str = "hello";
    console.log(str, typeof str);    // "string"
   var str = new String("hello");
    console.log(str, typeof str);    // "object"

字符串的特性 (对比数组)
1. 有length属性 表长度(字符的个数)
2. 可以通过下标取值,但是不能通过下标赋值(特性,官方规定) => 字符串的方法都不会影响原字符串
3. 可以被循环遍历

 // 下标取值
    // var char = str[4];
    // var char = str[100];
    // console.log(char);

    // 下标赋值   (失败)
    // str[4] = "O";
    // console.log(str);

    //循环遍历
    // for (var i = 0; i < str.length; i++) 
    //     var char = str[i];
    //     console.log(char);
    // 

    // for (var i in str) 
    //     console.log(i);
    // 

“”,’'里的字符串不能换行,解决办法:1.不换行2.改为字符串拼接的形式3.ES6模板字符串(反引号)
解决办法:
1.不换行2.改为字符串拼接的形式3.ES6模板字符串(反引号)

模板字符串(反引号)+插值语句$goodsprice

// 传统的字符串拼接(ES5)  多字符串拼接
        // html += '<li>' +
        //     '<a href="">' +
        //     '<img src="' + goodsImg + '" alt="">' +
        //     '</a>' +
        //     '<p class="info">' + goodsMsg + '</p>' +
        //     '<p class="price">¥<span>' + goodsPrice + '</span> </p>' +
        //     '</li>';

        // 模板字符串(``   ES6)   => 配合插值语句 拼接变量
        html += `<li>
            <a href="">
                <img src="$goodsImg"
                    alt="">
            </a>
            <p class="info">$goodsMsg</p>
            <p class="price"><span>$goodsPrice</span> </p>
        </li>`;

字符串的拓展方法
for in 下标
for of 值
includes
indexOf
charAt(下标) 返回对应下标的字符,取不到就返回空字符串

var str=new String("hello world");
var char = str[4];
var char = str[100];//undefined
console.log(char);

var char = str.charAt(4);
var char = str.charAt(100);//空字符串
console.log(char);

charCodeAt(下标) 返回对应下标字符的编码 ASCII编码值

var code = str.charCodeAt(4);  // "o" =>  111
var code = str.charCodeAt(6);  // "w" =>  119
console.log(code);

string函数构建方法 String.fromCharCode()
String.fromCharCode()传一个或多个字符编码

 var str = String.fromCharCode(104, 101, 108, 108, 111);
 console.log(str);//hello

indexOf(char)返回某个或某段字符在字符串中第一次出现的位置
indexOf(char,startIndex)也可以接收第二参数作为起始下标
返回值:存在=>下标
不存在=>-1

var str = "good good study , day day up";
var index = str.indexOf("d");  // 3
var index = str.indexOf("day"); //18   如果是一段字符,默认返回该段字符第一个字符的下标
console.log(index);

var index = str.indexOf("d", 4);  // 8,从下标4的位置开始找,d出现在8位置
var index = str.indexOf("day", 19); // 22
console.log(index);

LastIndexOf(char)返回某个或某段字符在字符串中最后一次出现的位置
LastIndexOf(char,startIndex)也可以接收第二参数作为起始下标
返回值:存在=>下标
不存在=>-1

var str = "good good study , day day up";
var index = str.lastIndexOf("d");     //   22
var index = str.lastIndexOf("good");  //   5
console.log(index);

var index = str.lastIndexOf("d", 21);     //   18
var index = str.lastIndexOf("good", 4);  //   0
console.log(index);  

concat() 字符串拼接
返回拼接后的新字符串

 var str1 = "good";
    var str2 = "good";
    var str3 = "study";
    // var str = str1.concat(" ", str2, " ", str3);
    str = str1 + " " + str2 + " " + str3;
    console.log(str);

字符串裁切 slice() substring() substr()
包含起始下标,但不包含终止下标
slice(startIndex=0,endIndex=length) 字符串裁切 [startIndex,endIndex)

  slice()  也可以接收负数作为参数  (str.length - n)
    var str = "good good study , day day up";
    // var str1 = str.slice(10, 15);
    // var str1 = str.slice(22, 25);
    
    // 了解
    var str1 = str.slice(-6, -3);  // -6 => str.length-6  -3=> str.length-3 =>25
    console.log(str1);//day

    // substring(startIndex,endIndex)  用法同slice() 但是不能接收负值
    var str1 = str.substring(10, 15);//study
    var str1 = str.substring();//good good study , day day up
    console.log(str1);

    // substr(startIndex,length)     字符串裁切
    // startIndex 起始下标(默认 0 )
    // length     裁切的长度 (str.length - startIndex)
    var str = "good good study , day day up";
    var str1 = str.substr(10, 5);//study
    var str1 = str.substr(10);//study , day day up
    console.log(str1);

toUpperCase() 字母转大写
toLowerCase() 字母转小写

 var str = "Good Good Study , Day Day Up 123123123 +-*/%";
 var newStr = str.toUpperCase();//GOOD GOOD STUDY , DAY DAY UP 123123123 +-*/%
 // var newStr = str.toLowerCase();//good good study , day day up 123123123 +-*/%
 console.log(newStr);

join() 数组转字符串(用特定的字符将数组拼接形成字符串)

  var arr = ["a", "b", "c", "d"];
    var str = arr.join("-");
    console.log(str);   // "a-b-c-d"

split() 字符串拆分数组(用特定的字符将字符串拆分形成数组)

 var brr = str.split("-");
    var brr = str.split("");
    console.log(brr);

trim() 去除首尾空格

<body>
    <input id="content" type="text">
    <button id="btn">点击</button>
</body>
<script>
    var contentInp = document.getElementById("content");
    var btn = document.getElementById("btn");

    // 聚焦事件
    // contentInp.onfocus = function () 
    //     console.log("聚焦");
    // 

    // // 失焦事件
    // contentInp.onblur = function ()    // 用户名注册去空格
    //     console.log("失焦");
    //     var con = contentInp.value.trim();
    //     contentInp.value = con;
    // 

    btn.onclick = function ()    // 弹幕发送
        var con = contentInp.value;
        console.log(1, con);
        con = con.trim();//去除输入框的首尾空格
        console.log(1, con);
    
</script>

search 查找某个或某段字符第一次出现的位置

 //普通用法   查找某个或某段字符第一次出现的位置
    var str = "good good study , day day up";
    var index = str.search("d"); // 3
    var index = str.search("day"); //18
    console.log(index);

    //配合正则表达式使用  查找符合规则的某个或某段字符第一次出现的位置
    var str = "good good study , Day dAy up";
    var reg = /day/i;  // D|d A|a Y|y
    var index = str.search(reg);

    console.log(index);

match 将匹配的内容(某个或每段字符)放入数组
返回值:有=>数组 没有=>null
//普通用法 将匹配的内容(某个或某段字符)存入数组 (默认值找一个)

 var str = "good good study , day day up";
    var arr = str.match("day");
    console.log(arr);

//配合正则表达式使用 将匹配的内容(符合规则的某个或某段字符)存入数组 (默认值找一个)

  var str = "good good study , Day dAy up";
    var reg = /day/i;  //  i忽略大小写   (默认只找一个)
    var reg = /day/ig;  // i忽略大小写  g全局匹配(匹配整个字符串)
    var arr = str.match(reg);
    console.log(arr);

以上是关于js-字符串的主要内容,如果未能解决你的问题,请参考以下文章

C语言程序 去首尾空格怎么编

javascript怎么去掉字符串首尾的双引号

[JS]string.substr(start,length)

Ping 为负值(Discord.js v13)

使用JS实现图片轮播(前后首尾相接)

Plotly.js:锁定 y 轴以避免负值