0

0

html如何提取字符串的一部分

心靈之曲

心靈之曲

发布时间:2026-02-10 17:32:02

|

425人浏览过

|

来源于php中文网

原创

JavaScript截取子串首选substring()(不支持负索引)、slice()(支持负索引更安全)和match()(正则提取模式内容),DOM场景应避免直接操作HTML字符串而用临时元素解析。

html如何提取字符串的一部分

substring() 截取固定位置的子串

JavaScript 里最直接的方式就是 substring(),它按起始和结束索引切字符串,不支持负数索引——这点容易踩坑:传 -1 不会从末尾算,而是被当成 0

常见错误现象:"hello".substring(2, -1) 返回 "he"(不是预期的 "lo"),因为负数会被自动转为 0,实际等价于 substring(2, 0),而该函数会自动交换参数顺序。

  • 要从第 2 位开始取 3 个字符:用 str.substring(2, 5)
  • 只给一个参数(如 substring(3)):截取从索引 3 到末尾
  • 如果起始 > 结束,函数会自动调换,结果不变;但语义不清,建议避免

slice() 处理负数索引更安全

slice()substring() 行为相似,但关键区别是它支持负数索引:-1 表示最后一个字符,-2 是倒数第二个……这个特性在动态提取后缀(比如文件扩展名、URL 路径最后一段)时特别实用。

使用场景:解析 "user/profile/settings" 想拿 "settings",可以写 path.slice(path.lastIndexOf("/") + 1);想取最后 4 位(不管总长)就用 str.slice(-4)

立即学习前端免费学习笔记(深入)”;

Dompdf
Dompdf

dompdf是一个HTML到PDF转换器。在其核心,dompdf是一个(大部分)符合CSS 2.1标准的HTML布局和渲染引擎,使用PHP编写。它是一个以样式驱动的渲染器,它会下载并读取外部样式表,内联样式标签和单个HTML元素的样式属性。它还支持大多数表现性HTML属性。PDF渲染目前由PDFLib或由Wayne Munro编写的捆绑版本的R&OS CPDF类提供。(对R&OS类进行了一些重要的更改,但是)。为了使用dompdf与PDFLib,需要安装PDFLib PECL扩展。使用PD

下载
  • "abcde".slice(-2)"de""a".slice(-2)"a"(不会报错)
  • slice()nullundefined 调用会报 TypeError: Cannot read property 'slice' of undefined,务必先判空
  • IE8+ 支持,现代项目基本无兼容问题

用正则 match() 提取符合模式的部分

当你要的不是“第几个字符”,而是“第一个数字”“邮箱前缀”“双引号里的内容”,就得靠正则。这时候别硬算索引,match() 返回数组,首项是完整匹配,捕获组才是你要的。

容易踩的坑:没加 g 标志时,match() 只返回第一个匹配;但如果你只想要一个结果,反而该用 exec() 或直接解构——因为 match() 对无匹配返回 null,直接取 [1] 会崩。

  • 提取引号内文本:str.match(/"([^"]*)"/)?.[1](注意可选链防止报错)
  • 取 URL 中的域名:url.match(/^https?:\/\/([^\/]+)/)?.[1]
  • 别写 str.match(/x/g)[0]——万一没匹配到,[0] 访问 null 就挂了

DOM 场景下别直接操作 innerHTML 字符串

如果目标是“从一段 HTML 字符串里提取某个标签的内容”,比如从 "

hello

world
"
中取 world,千万别用 substring() 去扒标签——结构一变就失效,还容易被 XSS 利用。

正确做法是借 DOM 解析:创建临时元素,设 innerHTML,再用 querySelector 安全提取。虽然多几行,但稳定、可读、防注入。

  • 错误示范:htmlStr.substring(htmlStr.indexOf(">") + 1, htmlStr.lastIndexOf("
  • 正确做法:const temp = document.createElement("div"); temp.innerHTML = htmlStr; const text = temp.querySelector("div")?.textContent;
  • 注意:如果字符串含多个同级 divquerySelector 只取第一个;要全部用 querySelectorAll
提取字符串看似简单,但边界判断、空值处理、DOM 上下文切换这几个点,几乎每次都会漏掉一两个。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

243

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

664

2024.03.01

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

464

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

213

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1541

2023.10.24

字符串介绍
字符串介绍

字符串是一种数据类型,它可以是任何文本,包括字母、数字、符号等。字符串可以由不同的字符组成,例如空格、标点符号、数字等。在编程中,字符串通常用引号括起来,如单引号、双引号或反引号。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

635

2023.11.24

java读取文件转成字符串的方法
java读取文件转成字符串的方法

Java8引入了新的文件I/O API,使用java.nio.file.Files类读取文件内容更加方便。对于较旧版本的Java,可以使用java.io.FileReader和java.io.BufferedReader来读取文件。在这些方法中,你需要将文件路径替换为你的实际文件路径,并且可能需要处理可能的IOException异常。想了解更多java的相关内容,可以阅读本专题下面的文章。

821

2024.03.22

php中定义字符串的方式
php中定义字符串的方式

php中定义字符串的方式:单引号;双引号;heredoc语法等等。想了解更多字符串的相关内容,可以阅读本专题下面的文章。

792

2024.04.29

包子漫画网页版入口与全集阅读指南_正版免费漫画快速访问方法
包子漫画网页版入口与全集阅读指南_正版免费漫画快速访问方法

本专题汇总了包子漫画官网和网页版入口,提供最新章节抢先看方法、正版免费阅读指南,以及稳定访问方式,帮助用户快速直达包子漫画页面,无广告畅享全集漫画内容。

37

2026.02.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

相关下载

更多

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.3万人学习

AngularJS教程
AngularJS教程

共24课时 | 3.5万人学习

CSS教程
CSS教程

共754课时 | 29.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号