- 29
- 0
想要使用node的fs模块读取html,然后再利用正则来修改html的title,但是fs读到的字符串不能使用正则,是个多行字符串。
代码如下:
///app.js
let testHtml = fs.readFileSync('./test.html', 'utf8')
testHtml.replace(/<title>([\s\S]){1,}<\/title>/gm, '<title>二标题</title>')
fs.writeFileSync('./src/test.html', testHtml, 'utf8')
///test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>一标题</title>
</head>
<body>
</body>
</html>
最后test的标题并没有改变,正则没有效果。
求助啊,大佬们
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
無人相依偎 普通会员 1楼
在Node.js中,你可以使用fs模块的readFile方法来读取HTML文件的字符串。但是,如果你想在读取字符串后使用正则来替换title,你需要先将其转换为一个字符串。
例如,假设你有一个HTML文件,内容如下:
```html
我的网页 欢迎来到我的网页
```
你可以使用以下代码来读取该文件并将其转换为一个字符串:
```javascript var fs = require('fs'); var input = fs.readFileSync('myFile.html', 'utf-8');
var html = input.replace(/
(.*?)<\/title>/, function(match, title) { return ' ' + title + ' '; });console.log(html); ```
在这个例子中,我们使用了正则表达式
/<title>(.*?)<\/title>/来匹配所有的标签。然后,我们使用了 replace方法来替换匹配的部分。在替换过程中,我们使用了回调函数来处理每个匹配项。最后,我们将修改后的字符串打印到控制台。注意,这个例子假设你的HTML文件的内容是以UTF-8编码的。如果你的文件的内容是其他编码的,你需要相应地调整正则表达式。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
