JavaScript 字符串 功能 用法运用 详解

news/2025/3/10 19:37:17/文章来源:https://www.cnblogs.com/baisemoshui/p/18763457

JavaScript 字符串详解

一、字符串概述

在JavaScript中,字符串(String)是一种基本数据类型,用于表示文本数据。字符串可以是一系列字符的组合,包括字母、数字、标点符号和特殊字符等。JavaScript提供了多种方法和属性来操作和处理字符串,使得开发者能够轻松地进行字符串的拼接、查找、替换、截取等操作。

二、字符串的创建

  1. 使用字符串字面量

    这是最常见和简单的方式,使用单引号(')或双引号(")括起来的文本即为字符串。例如:

    var str1 = 'Hello, World!';
    var str2 = "JavaScript is powerful.";
    
  2. 使用String构造函数

    可以通过String构造函数来创建字符串对象。不过,这种方式在大多数情况下并不常用,因为直接使用字符串字面量更为简洁和高效。例如:

    var str3 = new String('Hello, World!');
    

三、字符串的常用属性和方法

  1. length属性

    length属性用于获取字符串的长度,即字符串中字符的数量。例如:

    var str = 'Hello, World!';
    console.log(str.length);  // 输出: 13
    
  2. 访问字符串中的字符

    • charAt(index):返回指定索引处的字符。索引从0开始,如果索引超出范围,则返回空字符串。

      var str = 'Hello';
      console.log(str.charAt(1));  // 输出: 'e'
      
    • charCodeAt(index):返回指定索引处字符的Unicode编码。

      var str = 'Hello';
      console.log(str.charCodeAt(1));  // 输出: 101('e'的Unicode编码)
      
    • at(index)(ES2020引入):返回指定索引处的字符,支持负数索引(从字符串末尾开始计算)。

      var str = 'Hello';
      console.log(str.at(1));   // 输出: 'e'
      console.log(str.at(-1));  // 输出: 'o'
      
  3. 字符串的拼接和连接

    • concat(str2, str3, ...):连接两个或多个字符串,并返回一个新的字符串。

      var str1 = 'Hello';
      var str2 = 'World';
      var result = str1.concat(' ', str2, '!');
      console.log(result);  // 输出: 'Hello World!'
      
    • 使用加号(+)操作符:这是更常用和简洁的字符串拼接方式。

      var str1 = 'Hello';
      var str2 = 'World';
      var result = str1 + ' ' + str2 + '!';
      console.log(result);  // 输出: 'Hello World!'
      
  4. 字符串的查找

    • indexOf(searchValue, fromIndex):返回指定文本在字符串中首次出现的索引位置,如果找不到则返回-1。fromIndex是可选参数,表示从哪个索引位置开始搜索。

      var str = 'Hello, World!';
      console.log(str.indexOf('World'));  // 输出: 7
      console.log(str.indexOf('world'));  // 输出: -1(大小写敏感)
      
    • lastIndexOf(searchValue, fromIndex):返回指定文本在字符串中最后一次出现的索引位置,如果找不到则返回-1。fromIndex是可选参数,表示从哪个索引位置开始向后搜索。

      var str = 'Hello, World! Hello, Universe!';
      console.log(str.lastIndexOf('Hello'));  // 输出: 19
      
    • includes(searchValue, position):判断字符串中是否包含指定的子字符串,如果包含则返回true,否则返回falseposition是可选参数,表示从哪个索引位置开始搜索。

      var str = 'Hello, World!';
      console.log(str.includes('World'));  // 输出: true
      console.log(str.includes('world'));  // 输出: false(大小写敏感)
      
    • startsWith(searchValue, position):判断字符串是否以指定的子字符串开头,如果是则返回true,否则返回falseposition是可选参数,表示从哪个索引位置开始判断。

      var str = 'Hello, World!';
      console.log(str.startsWith('Hello'));  // 输出: true
      
    • endsWith(searchValue, length):判断字符串是否以指定的子字符串结尾,如果是则返回true,否则返回falselength是可选参数,表示要搜索的字符串长度。

      var str = 'Hello, World!';
      console.log(str.endsWith('!'));  // 输出: true
      
    • search(regexp):使用正则表达式在字符串中搜索匹配项,并返回首次匹配项的索引位置,如果没有找到匹配项则返回-1。

      var str = 'Hello, World!';
      console.log(str.search(/world/i));  // 输出: 7(忽略大小写)
      
  5. 字符串的截取和分割

    • substring(startIndex, endIndex):提取字符串中从startIndexendIndex-1之间的字符,返回一个新的字符串。如果省略endIndex,则提取到字符串末尾。

      var str = 'Hello, World!';
      console.log(str.substring(7, 12));  // 输出: 'World'
      
    • slice(startIndex, endIndex):与substring类似,但允许使用负数索引(从字符串末尾开始计算),并且如果endIndex省略,则提取到字符串末尾。

      var str = 'Hello, World!';
      console.log(str.slice(7, 12));   // 输出: 'World'
      console.log(str.slice(-6));      // 输出: 'World!'
      
    • substr(startIndex, length):从startIndex开始提取指定长度的字符,返回一个新的字符串。注意:substr方法已被废弃,建议使用substringslice代替。

      var str = 'Hello, World!';
      console.log(str.substr(7, 5));  // 输出: 'World'(不推荐使用)
      
    • split(separator, limit):使用指定的分隔符将字符串分割成数组。separator可以是字符串或正则表达式,limit是可选参数,表示返回数组的最大长度。

      var str = 'apple,banana,orange';
      console.log(str.split(','));  // 输出: ['apple', 'banana', 'orange']
      console.log(str.split(',', 2));  // 输出: ['apple', 'banana']
      
  6. 字符串的替换

    • replace(searchValue, newValue):将字符串中第一个匹配的searchValue替换为newValue,并返回新的字符串。searchValue可以是字符串或正则表达式。

      var str = 'Hello, World!';
      console.log(str.replace('World', 'JavaScript'));  // 输出: 'Hello, JavaScript!'
      
    • replaceAll(searchValue, newValue)(ES2021引入):将字符串中所有匹配的searchValue替换为newValue,并返回新的字符串。searchValue可以是字符串或正则表达式。

      var str = 'Hello, World! Hello, Universe!';
      console.log(str.replaceAll('Hello', 'Hi'));  // 输出: 'Hi, World! Hi, Universe!'
      
  7. 字符串的大小写转换

    • toLowerCase():将字符串中的所有字母转换为小写。

      var str = 'Hello, World!';
      console.log(str.toLowerCase());  // 输出: 'hello, world!'
      
    • toUpperCase():将字符串中的所有字母转换为大写。

      var str = 'Hello, World!';
      console.log(str.toUpperCase());  // 输出: 'HELLO, WORLD!'
      
    • toLocaleLowerCase():根据本地环境将字符串中的所有字母转换为小写。在某些地区,可能与toLowerCase()的行为不同。

      var str = 'Hello, World!';
      console.log(str.toLocaleLowerCase());  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/896936.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

transformer 中的掩码类型

知识是我们已知的也是我们未知的基于已有的知识之上我们去发现未知的由此,知识得到扩充我们获得的知识越多未知的知识就会更多因而,知识扩充永无止境

如何设计、维护和推广 API:专业人士的实用指南

API 在今天的数字化环境中扮演着至关重要的角色,它们作为系统和应用程序之间的连接纽带。对于公司而言,打造用户喜爱的 API、有效地维护它们并成功地在内部和外部推广,不仅能提高数字价值,还能带来巨大的业务收益。 API 设计是创建一个标准化、易于理解且稳定的应用程序接口…

springboot引入nacos

springboot引入nacos 一、 环境准备(windows为例)安装nacos(github镜像网址:Releases alibaba/nacos) 推荐下载发行版启动nacos本地服务 下载完毕,建议解压到没有中文路径的文件夹,在bin目录下打开cmd对话框输入下面命令启动nacos startup.cmd -m standalone启动成功出现以…

95%开发者不知道的调试黑科技:Apipost让WebSocket开发效率翻倍的秘密

在现代 Web 开发中,Websocket 作为一种常见的 Web 协议,与 Restful API 有着本质的不同。Restful API是基于请求-响应模式的单向通信,而 WebSocket 提供全双工通信渠道,允许客户端和服务器之间进行实时双向数据传输。这种特性使得它在需要实时交互的场景中大放异彩,比如 I…

题解:P9221 「TAOI-1」Pentiment

P9221 解题报告 一眼线段树优化 dp,但是调了7h。 首先考虑朴素 dp,设 \(dp_{i,j}\) 表示走到第 \(i\) 行第 \(j\) 列的方案数,转移: \[dp_{i,j}=\sum dp_{i-1,k} \]其中 \(k\) 表示第 \(i\) 行可以走到 \(j\) 的列。 比如如果第 \(i\) 行是下面这种情况:当 \(j=3\) 时,\(…

【Java开发】Tools4AI:一个适用于企业Java应用的开源智能体框架

一、简介 GitHub主页:(https://github.com/vishalmysore/Tools4AI) Tools4AI 是一个基于 Java 的开源智能体框架,它为企业Java应用程序提供了一种集成人工智能的独特方法。作为一个大型动作模型(Large Action Model,LAM)智能体,Tools4AI 能够根据自然语言指令自主执行任务…

英语328个词缀和词根汇总(14张图)

在所有的单词记忆法中,构词法是最科学、记忆效果最佳的词汇记忆法。下面整理了高中常用的词根、词缀。利用有限的词根、词缀对英语单词进行构词分析和解形释义,单词变得好认又好记,词义也一目了然。通过构词法记单词,可以举一反三,记一识十,从而达到事半功倍的记忆效果。…

No.48 ES6---数组扩展之扩展运算符和新增方法

一、数组扩展之扩展运算符 1.扩展运算符扩展运算符(spread)是三个点(…)。将一个数组转为用逗号分隔的参数序列。<script>var arr = [10,23,45,6,7];//以前获取数组中的每个元素for(let i = 0;i<arr.length;i++){console.log(arr[i]);}//有了扩展运算符之后console.lo…

Zabbix 7.0 LTS 部署

Zabbix 7.0LTS教程 一、环境介绍 操作系统:Rocky Linux 9.5 软件版本:7.0LTS 二、安装教程 官网:Zabbix:企业级开源监控解决方案 点击右上角的下载ZABBIX选择对应的环境:选择之后往下拉会看到相应的部署步骤:2.1 软件源配置 按照文档提示:如果有epel.repo源码,需要先注释…

IDC机房无人值守:智能运维一体化解决方案

“智和网管平台”,通过实时监控、远程配置等技术实现数据中心机房的自动检测、自动报警、自动修复等功能,从而达到无需人工干预的机房运维状态,减少人为因素对设备运行的干扰,增强机房设备、设施数据的直观可视性、提高其利用率。 企业数字化转型以及5G、物联网、云…

rust学习二十.1、不安全代码之原始指针(裸指针)

一、前言 指针在前面的篇幅中已经介绍过许多,但主要是智能指针。 智能指针管理堆上的数据,并且受到rust的所有权和借用规则管理(注意,这里的所有权和借用有时候不同于最原始的那种)。 智能指针好歹能管着这些数据,但是rust中存在一些不能使用所有权管理的数据,它们需要利…