You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JavaScript移除DOCTYPE声明中双引号包裹的冗余子串

问题原因

  • JavaScript的String.replace()方法是纯函数,不会修改原始字符串,只会返回替换完成的新字符串,你没有将返回值重新赋值给变量,所以两次打印的都是原始值。
  • 你写的匹配参数存在语法错误:混合了字符串和正则字面量写法,双引号转义逻辑错误,导致匹配规则不合法,根本无法匹配到目标内容。

解决方案

方案1:固定内容精准替换

如果要删除的内容是固定的,直接使用字符串匹配即可:

const data = `"<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html></html>"`;
// 接收replace返回的新字符串赋值
const processedData = data.replace(' PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"', '');
console.log(processedData);
// 输出结果:"<!DOCTYPE HTML><html></html>"

方案2:正则通用匹配

如果需要适配不同版本的DOCTYPE PUBLIC声明,使用正则匹配更灵活:

const processedData = data.replace(/ PUBLIC "[^"]+" "[^"]+"/, '');

内容的提问来源于stack exchange,提问作者Amaarockz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:57:03