字符串

概念:字符串就是一串字符,由单(双)引号括起来.因为在对应的js里面字符串属于一个值类型

(值类型是常量 常量是不能变)。字符串是不能改变的。

字符串的定义

1. 基本类型

var str = 'hello'; //定义了一个字符串,内容为hello

2. 引用类型

var str = new String("hello"); //定义一个字符串变量
//此刻的str为引用类型,在栈开辟一个空间,指向又在堆开的一个空间,再指向堆内的常量区

3. String方法

var str = String('hello');

4.es6新增 字符串模板 ``

var a = 'jack';
var str = `hello ${a}`; //可解析${} 以变量解析 ``
console.log(str); //hello jack

new String() 和 String() 的区别

  • 当String() 与元素符new 一起使用,String() 是作为构造函数使用的,它返回的是一个新创建的String对象
  • 当不使用new运算符调用String时,它只是转换原始的字符串,并返回转换后的值

字符串的函数 (增删改查不会改变原字符串,而是生成新的)

1.concat() 连接字符串

var str = "hello,";
console.log(str.concat("world!")); //hello,world!
console.log(str); //hello,

2.indexOf( n )

查找n在字符串第一次出现的位置,没有找到则返回-1

var str = "abc ccd hello yule";
console.log(str.indexOf('c')); //在str里查找字符'c',第一个c的下标为2,返回2
console.log(str.indexOf('c',3)); //在str从下标3开始找字符'c',下标3后的第一个字符'c'的下标为4,返回4
console.log(str.indexOf('c',6)); //在str从下标6开始找字符'c',下标6后的没有字符'c',返回-1 

3.lastIndexOf(n)

查找n在字符串最后一次出现的位置,没有找到则返回-1

复制代码
//自定义的indexOf()与 lastIndexOf()

//从前面往后查找
function indexOf(str1,index)
{
    if(!index)
        index = 0;
    for(var i = index; i < str.length-str1.length;i++)
    {
        var s = '';
        for(var j = 0; j <str1.length; j++)
        {
            s+=str[i+j];
        }
        if(s == str1)
            return i;
    }
    return -1;
}
​
//从后面往前开始查找
function last(str1,index)
{
    if(!index && index != 0)
        index = str.length-1;
    for(var i = index; i >= str1.length;i--)
    {
        var s = '';
        for(var j = str1.length-1; j >= 0; j--)
        {
            s+=str[i-j];
        }
        if(s == str1)
            return i-str1.length+1;
    }
    return -1;
}
复制代码

4.replace( 换下内容,换上内容)

替换字符 并且只会换下第一个要换下的内容 支持正则

var str = "nihao,nihao,小喻";
console.log(str.replace("nihao","你好")); //你好,nihao,小喻
console.log(str); //nihao,nihao,小喻

5.split() 切割字符串

//根据字符串内存在的字符,将字符串分割,然后返回一个保存了分割后的字符串的数组 支持正则

var str = "qw-ei-12-34";
console.log(str.split('-')); //['qw', 'ei', '12', '34'] 默认不分割
console.log(str); //qw-ei-12-34

6.substr (开始截取的字符下标,截取的长度),

substring(开始截取的字符下标,结束截取的字符下标(不截取))

slice( 开始截取的字符下标,结束截取的字符下标(不截取))

var str = "你好,奇七怪乖~";
console.log(str.substr(1, 5)); //好,奇七怪 
console.log(str.substring(1, 5)); //好,奇七
console.log(str.slice(1, 5)); //好,奇七
console.log(str); //你好,奇七怪乖~

7.charAt( n )函数 获取下标为n的字符

var str ="123456";
console.log(str.charAt(3)); //4

8.charCodeAt( n )函数

获取下标为n的字符的编码(ASCII码)

var str = "a12d33";
console.log(str.charCodeAt(0)); //97

9.String.fromCharCode( n1,n1 )

将n1,n2对照ASCII码转为字符 静态方法(通过构造方法名直接调用 static修饰)

var str = String.fromCharCode(97,49);
console.log(str); //a1

10.search() 正则匹配(返回第一次出现的位置)

var str = "acbcdefgcd";
//g表示进行全局匹配,i表示匹配的时候忽略大小写1
var res = str.search(/cd/gi);
console.log(res); //3 第一个cd从下标3开始出现

11.match() 匹配 返回数组

var str = "abcacc";
// 默认只找第一个匹配的 加入数组
var arr = str.match('a');
console.log(arr);

总结

  • string 是不能改变的(常量)
  • string 的方法返回的都是一个新的字符串
  • string 的length属性是只读的,不能赋值,读取对应的字符串的长度
  • 字符串可以通过下标进行访问
  • 字符串方法:charAt() charCodeAt()
  • 搜索:indexOf() lastIndexOf() search()
  • 支持正则的方法:search() replace() split() match()
  • 截取的方法:substring() substr()
  • 转大写和小写:toUpperCase() toLowerCase()
  • 静态方法:fromCharCode() 根据ASCII码转为字符串
posted @   啊呀阿鱼呀  阅读(157)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示