给定 ul 和 textarea 的空列表。它包含带有标点符号的文本。当你失去焦点时,将文本中的每个句子写到你的 li 标签中。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<ul id="ul"></ul>
<textarea id="text">
</textarea>
<script>
let texts = document.getElementById("text");
document.querySelector("textarea").addEventListener("blur", () => {
texts = texts.value.split(".");
for (let text of texts) {
const newListItem = document.createElement("li");
newListItem.textContent = text
document.querySelector('ul').appendChild(newListItem);
}
});
</script>
</body>
</html>
我完成了任务,但是如果最后一句末尾有句号,则添加一个空李。我检查了正在创建的数组:其中创建了一个换行符。另外,如果您在文本区域中重新输入句子,它们不会覆盖已经输入的句子,并且控制台中会出现错误)
为了修复控制台中的错误,我将添加对空文本的检查
if (texts),以确保它textarea不为空在我的示例中
(/(?<=[.!?])\s+/),正则表达式将文本分割成点,并且还考虑了符号 ?, !和空格\s+。if (sentence)如果该行为空,那么我们不会将其添加到列表中我将提供一个没有正则表达式的选项
slice(),我们手动控制文本划分。缺点:需要处理所有情况,例如省略号...更多代码