写js,将一串文本,转换为html,每一行文字用<span></span>包裹,如果一行文字中出现了(size:,,例如(size:80%),就提取里面的size:后的80%给span标签,加上 style="font-size:提取出来的80%",并将(size:80%)删除
时间: 2024-03-13 09:46:58 浏览: 13
好的,可以在之前的代码基础上进行修改。以下是一个可能的实现:
```javascript
// 假设文本内容存储在变量 text 中
const lines = text.split('\n'); // 以换行符分割文本,得到每一行的内容
const htmlLines = lines.map(line => {
// 判断当前行中是否有 (size:xx%) 这个字符串
const matches = line.match(/\(size:(\d+%)\)/);
if (matches) {
// 提取出匹配到的 xx% 值,并加入样式
const fontSize = matches[1];
line = line.replace(matches[0], '');
return `<span style="font-size:${fontSize};">${line}</span>`;
} else {
// 将每一行文本包裹在 <span> 中
return `<span>${line}</span>`;
}
});
const html = htmlLines.join(''); // 将所有行的 HTML 代码拼接在一起
```
这样,如果一行文本中包含 `(size:xx%)` 这个字符串,那么对应的 `<span>` 标签就会加上 `style="font-size:xx%"` 的样式,并且 `(size:xx%)` 这个字符串会被删除。如果一行文本中不包含 `(size:xx%)` 这个字符串,那么对应的 `<span>` 标签就只是简单地包裹了文本内容。其中,正则表达式 `/\(size:(\d+%)\)/` 用于匹配 `(size:xx%)` 这个字符串,并提取出其中的 xx% 值。