Web前端复习——Javascript(字符串)

2023-11-04

1、什么是字符串?

字符串是多个字符组成的一个“只读”的集合(数组)

注意:

(1)凡是数组对象中,不修改原对象的API,字符串都能用

比如——

.length属性:字符个数,用[i]访问每个字符

slice、indexof

(2)凡是数组对象中,直接修改原对象的API,字符串都不能用

比如——

push、sort、splice


2、内置对象

它是由ES标准中已经定义好的,由浏览器厂商已经实现的对象。

11个——

String、Number、Boolean

Array、Data、Math、RegExp

Error

Function、Object

Global(全局window)


3、包装类型

它是专门封装原始类型数据,提供对原始类型数据的操作方法

(1)3种包装类型——String、Number、Boolean(不能用new)


(2)为什么要使用包装类型?

由于原始类型的数据本来没有任何方法,当程序中使用原始类型调用方法时,程序会自动创建包装类型对象封装该数据。

函数调用完,包装类型自动释放。


4、String类型的API

(1)转义字符:

当a、字符串的内容和程序的特殊符号冲突

    b、字符串中包含功能字符时,    都用“ \ ”转义字符来显示


(2)大小写转换(2种)

转换大写——str.toUpperCase()

转换小写——str.toLowerCase()


(3)获取指定位置字符(3种)

a、str[i]

倒数第二个:str[str.length-2]

b、str.charAt(i)

c、str.charCodeAt(i)——返回相应的unicode号


(4)查找关键词位置(2种)

a、var i = str.indexOf("kword"[,starti]);

如果找不到,返回-1

b、var i = str.lastIndexOf("kword"[,starti]);

查找starti位置左侧第一次出现的关键字

starti默认都是0,关键字第一个字符的位置可以等于0


注意:indexOf——从前往后找;lastIndexOf——从后往前找

  

(5)获取子字符串

a、var subStr = str.slice(starti[,endi+1])

pid.slice(6,-5+1)

b、var subStr = str.substring(starti[,endi+1]) 

pid.substring(6,pid.length-5+1)

c、var subStr = str.subStr(starti,取几个);

pid.subStr(6,8)


(6)分割字符串

var arr=str.split("分隔符");

arr中以数组形式保存每段子字符串

使用方法——先分割,再遍历


(7)模式匹配

定义:按照规则查找或替换字符串中的子内容

a、查找(2种)

a-1:只能从第一个位置,找第一个匹配的关键字

var i = str.search(/kword/i)

模式1——“/i”表示忽略大小写(ignore)

 使用:仅判断有无关键字

search() VS indexOf()

search()专门用于模式匹配(若找位置,并区分大小写)

indexOf()不支持模式匹配



a-2:获得所有关键字的内容或个数

var arr = str.match(/kword/ig)

模式2——“/g”表示全局匹配(global)

注意:arr中保存关键字所有的内容

arr.length表示匹配的关键字的个数

(若匹配查找的关键字没找到,将要返回null)


区分search()与match()方法:

a、search()——“位置”;只能从第一个位置开始,找到第一个出现的关键字

b、match()——“内容”;缺陷是它无法获得关键字下标位置


b、替换replace()

var newStr = str.replace(模式,"替换内容");




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Web前端复习——Javascript(字符串) 的相关文章

  • 如何从ArrayBuffer中获取二进制字符串?

    JavaScript中如何从ArrayBuffer中获取二进制字符串 我不想对字节进行编码 只需将二进制表示形式获取为字符串 提前致谢 以下代码将一致地转换ArrayBuffer to a String并再次返回 而不会丢失或添加任何额外的
  • 按下了哪个提交按钮?

    在这个jsfiddle中 http jsfiddle net littlesandra88 eGRRb http jsfiddle net littlesandra88 eGRRb 我是否提交了自动生成的按钮 每个表行都有一个唯一的 ID
  • 使用 javascript 调用 ViewComponent

    我有一个带有几个视图组件的网页 当我单击这些组件时 我会为其打开一个简单的编辑器 请参见下图 如果我编辑文本并按 Enter 键 我想重新渲染视图组件而不是孔页面 是否可以使用 javascript 调用视图组件来获得此行为 通过更新 您现
  • 允许指针(单击)事件穿过元素,同时保持滚动功能

    我的目标是拥有一个允许 下面要点击 交互的元素 滚动 众所周知 1 的解是pointer events none 这正如中所描述的单击 DIV 到底层元素 https stackoverflow com questions 3680429
  • 最小的 ExtJS 包是什么?

    有谁知道 Ext JS 2 2 所需的最少文件吗 我知道 ExtJS 网站有一个功能 build http extjs com products extjs build ExtJS ext js 的小版本 作为 ext all js 的替代
  • 如何制作像Stackoverflow一样的可折叠评论框

    我正在构建一个网站 并且有一个状态更新列表 我希望允许用户为列表中的每个项目撰写评论 但是我正在尝试实现一个类似于堆栈溢出工作方式的用户界面 特别是可折叠的评论表单 列表 用户在其中单击对列表中的特定状态更新添加评论 并且在列表中的该项目下
  • 以 str.format 切片字符串

    我想实现以下目标str format x y 1234 5678 print str x 2 str y 2 我能够做到这一点的唯一方法是 print 0 1 format str x 2 str y 2 现在 这是一个例子 我真正拥有的是
  • 通过 HTML5 文件和 URL API 正确创建和提供 PDF Blob

    好吧 假设我有文档数据存储在某处 让我们任意取this pdf http www grida no climate ipcc tar wg1 pdf tar 01 pdf 问题 1 我想要做的是对此 URL 进行 AJAX 调用 因为我需要
  • React延迟加载/无限滚动解决方案

    我花了一段时间才弄清楚如何使用优秀的延迟加载图像React Lazyload 组件 https github com jasonslyvia react lazyload 演示在滚动时延迟加载图像 但在测试时我无法获得相同的行为 罪魁祸首是
  • 未捕获类型错误:无法解析模块说明符“fs”。相对引用必须以“/”、“./”或“../”开头

    当我尝试在我自己的模块中导入 fs 模块时 例如import as fs from fs 浏览器控制台出现以下错误 Uncaught TypeError Failed to resolve module specifier fs Relat
  • Chrome 扩展程序中的后台脚本到底何时运行?

    在我的 chrome 扩展中 我有一个后台脚本 它将使用XMLHttpRequest note that this code is in the global scope i e outside of any function also n
  • NodeJS 无法加载 css 文件

    所以我正在尝试制作一个 NodeJS 服务器 并且我尝试保留尽可能少的附加组件 但是 我遇到了一个问题 我似乎无法加载任何内容CSS我调用的文件HTML文件 该调用似乎确实由服务器处理 但它不会显示在浏览器中 My 网络服务器 js fil
  • 正则表达式 - 避免表达式中出现字符串

    我正在尝试创建一个应该匹配以下情况的正则表达式 如果单词完全匹配 first second third 那么匹配应该失败 但如果它周围有任何字符 那么应该匹配该字符串 我还需要避免字符串中的某些字符集 如果这些字符是字符串的一部分 则匹配结
  • Rails 4 - 带有 dependent-fields-rails 的条件 JS

    我正在尝试弄清楚如何在我的 Rails 4 应用程序中使用 dependent fields rails gem 我迷路了 我已将 underscore js 包含在我的供应商 javascripts 文件夹中 并更新了我的 applica
  • 如何使用 selenium 获取 javascript 结果?

    我有以下代码 from selenium import selenium selenium selenium localhost 4444 chrome http some site com selenium start sel selen
  • 对数字和字母元素的数组进行排序(自然排序)

    假设我有一个数组 var arr 1 5 ahsldk 10 55 3 2 7 8 1 2 75 abc huds 我尝试对其进行排序 我得到了类似的东西 1 1 10 2 2 3 5 55 7 75 8 abc ahsldk huds 注
  • while 循环元素状态 cypress

    我有一个问题 我想单击一个按钮直到它消失 但次数可能会有所不同 所以我想检查可见性状态 当可见 true时单击按钮 当可见 false时结束测试 但问题是我不知道如何循环从获取元素到末尾的所有链 单击按钮一次 由于中断而停止 如果我删除中断
  • 优化正则表达式以过滤数千个 HTML 选择选项

    背景 我开发了一个基于 jQuery 的穿梭小部件 https stackoverflow com a 13557000 59087对于 HTMLselect元素 因为我找不到一个经过最低限度编码并提供正则表达式过滤器来补偿的元素变音符号
  • Javascript - 如何计算数字的平方?

    使用 JavaScript 函数 function squareIt number return number number 当给定数字 4294967296 时 函数返回 18446744073709552000 每个人都知道真正的答案是
  • html5 canvas 使用图像作为蒙版

    是否可以使用具有形状的图像作为整个画布或画布内图像的蒙版 我想将图像放置在画布中 并在图像上添加蒙版 然后将其另存为新图像 您可以使用 source in globalCompositeOperation 将黑白图像用作蒙版 首先 将蒙版图

随机推荐

  • C运行时库(C Run-time Library)详解

    一 什么是C运行时库 1 C运行时库就是 C run time library 是 C 而非 C 语言世界的概念 取这个名字就是因为你的 C 程序运行时需要这些库中的函数 2 C 语言是所谓的 小内核 语言 就其语言本身来说很小 不多的关键
  • AIX系统文件压缩解压缩及性能诊断常用命令

    AIX系统文件压缩解压缩及性能诊断常用命令 磁带设备 顺序读取 文件类型 dev rmtx dev rmtx 1 dev rmtx 2 掌握 zip tar tape archive 保留原有权限 没有压缩 只是打包 创建 tar cvf
  • Basic Level 1091 N-自守数 (15分)

    题目 如果某个数 K 的平方乘以 N 以后 结果的末尾几位数等于 K 那么就称这个数为 N 自守数 例如 3 9 2 2 25392
  • 【python】excel文件(.xls文件)处理

    目录 概述 xlrd xlwt xlutils 概述 xlrd 用于读取文件 xlwt 用于写入文件 xlutils 是两个工具包的桥梁 也就是通过xlrd 读取 xls文件 然后通过xlutils 将文件内容交给xlwt处理并且保存 xl
  • 新手linux安装vasp_一步一步教你如何在linux 下安装VASP 【真的是从零开始】

    首先我是一个linux 小白 只接触过linux 的基本用法 听说VASP 编译很复杂 故想学习之 如果大神见了 请直接飘过 非常期待和大家互动交流 下面就直接进入主题 如何在linux 下面安装VASP 首先我想说说什么叫编译 为什么要编
  • 线阵相机、镜头及光源的选型

    线阵相机顾名思义就是取像是成线性的 它的传感器是成线型的 举个例子 比如面阵相机的分辨率是640 480就是说这个相机横向有640个像元 纵向有480个像元 而线阵相机分辨率只体现在横向 比如2048像素的线阵相机就是说横向有2048个像元
  • 颜色空间YUV简介

    YUV概念 YUV是被欧洲电视系统所采用的一种颜色编码方法 属于PAL Phase Alternation Line 是PAL和SECAM模拟彩色电视制式采用的颜色空间 其中的Y U V几个字母不是英文单词的组合词 Y代表亮度 其实Y就是图
  • java集合的copy

    java拷贝集合的方法有很多种 常用的比较简单的做法有两种 直接使用集合构造方法实现浅拷贝 这种方法只是保证list和listCopy的引用不一样 但是集合元素的引用时一样的 List
  • 生产管理MES系统框架

    1 总体框架描述 生产管理MES系统框架涵盖了涉及生产制造范畴内的所有业务管理内容 包括 产品生产数据 销售订单管理 材料需求计算和计划 采购管理 仓库物流管理 主生产计划 生产作业管理 生产过程物料加工 生产过程工装组装管理 品质管理 检
  • idea 插件的使用 进阶篇(个人收集使用中的)

    idea 插件的使用 进阶篇 个人收集使用中的 恭喜你 如果你已经看到这篇文章 证明在idear使用上已经初有小成 那么就要向着大神进发了 下边就是大神之路 插件的设置 在 IntelliJ IDEA 的安装讲解中我们其实已经知道 Inte
  • Quartz和Spring Task定时任务的简单应用和比较

    一 Quartz 引入quartz的jar包 配置文件中定义org springframework scheduling quartz MethodInvokingJobDetailFactoryBean 并指定它的targetObject
  • 理解HTML、CSS、javascript之间的关系

    理解HTML CSS javascript之间的关系 版权属于 博客园 牧云流 本文作者 牧云流 原文链接 https www cnblogs com dreamingbaobei p 10407626 html 网页主要有三部分组成 结构
  • pygame从入门到放弃(一)

    首先pip 那个pygame 然后看代码 临时写的 图片就不插了 防止舍友砍我 现在是凌晨 TOC 井字棋游戏 此代码基本能立于不败之地 import random 可视化输出 def draw Board board print prin
  • gcc中预定义的宏__GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__

    今天在看Linux系统编程这本书的代码的时候看到了 GNUC 不太清楚这个宏所以去查了一下 以此记录 GNU C预定义了一系列的宏 这些宏都是以双下划线开始的 这里只讲一下 GNUC GNUC MINOR GNUC PATCHLEVEL 完
  • vue中this.$set()的用法

    1 this set 的作用 向响应式对象中添加一个属性 并确保这个新属性同样是响应式的 且触发视图更新 this set 用于向响应式对象上添加新属性 因为 Vue 无法探测普通的新增属性 简单来说 就是我们在methods中给数据添加了
  • 整数拆分--

    题目描述 一个整数总可以拆分为2的幂的和 例如 7 1 2 4 7 1 2 2 2 7 1 1 1 4 7 1 1 1 2 2 7 1 1 1 1 1 2 7 1 1 1 1 1 1 1 总共有六种不同的拆分方式 再比如 4可以拆分成 4
  • [每日两题系列]刷算法题咯~~

    今日题目 最小栈 有效的括号 本系列所选题目均来自力扣或者牛客网站 所选题目主要是以其中的简单题为主 中等题为辅 包含少数困难题 原因是 本人目前能力还不够 开展这个系列的目的是督促自己 在暑假的时间里也要保持有一定的刷题量 拒绝摆烂 话不
  • FISCO BCOS 联盟链Max搭建

    FISCO BCOS Max版本 版本说明 为了能够支撑海量交易上链场景 v3 0 0推出了Max版本FISCO BCOS Max版本FISCO BCOS旨在提供海量存储服务 高性能可扩展的执行模块 高可用的故障恢复机制 Max版FISCO
  • ZYNQ #2 - Linux环境下烧录BOOT.BIN从QSPI-FLASH启动

    这篇博文讲述的是在Linux环境下 将生成的新BOOT BIN利用dd指令写入板上qspi flash中 板子从flash启动后 转至SD卡执行linux内核 这篇博文是为了之后不使用SD卡 将linux内核以及根文件系统放入emmc启动做
  • Web前端复习——Javascript(字符串)

    1 什么是字符串 字符串是多个字符组成的一个 只读 的集合 数组 注意 1 凡是数组对象中 不修改原对象的API 字符串都能用 比如 length属性 字符个数 用 i 访问每个字符 slice indexof 2 凡是数组对象中 直接修改