在JavaScript中实现文本框(<input>
或 <textarea>
)内文本的高亮显示,通常涉及以下几个基础概念:
document.getElementById
或其他方法获取目标文本框。input
事件监听文本框内容的变化。<span>
元素并设置CSS样式来高亮显示匹配的文本。<span>
元素。以下是一个简单的示例,展示如何在文本框中高亮显示特定的关键词(例如“JavaScript”):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Highlight Text in Input</title>
<style>
.highlight {
background-color: yellow;
}
</style>
</head>
<body>
<textarea id="textInput" rows="10" cols="50">I love JavaScript and web development.</textarea>
<script>
const textInput = document.getElementById('textInput');
const keyword = 'JavaScript';
textInput.addEventListener('input', function() {
const text = textInput.value;
const regex = new RegExp(`(${keyword})`, 'gi');
const newText = text.replace(regex, '<span class="highlight">$1</span>');
textInput.innerHTML = newText; // 注意:textarea不支持innerHTML,这里仅示例
});
</script>
</body>
</html>
注意:<textarea>
不支持 innerHTML
,所以上述代码仅作为示例。实际应用中,可以通过创建一个覆盖在文本框上的 div
元素来实现高亮显示。
对于 textarea
,可以使用以下方法实现高亮:
textarea
用于输入,一个 div
用于显示高亮效果。textarea
的内容同步到 div
,并在 div
中进行高亮处理。Range
和 Selection
API 的支持可能有所不同。可以通过检测浏览器特性来选择合适的实现方式。通过以上方法,可以在JavaScript中实现文本框内文本的高亮显示,并根据具体需求进行调整和优化。
领取专属 10元无门槛券
手把手带您无忧上云