<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<div id="myDiv">
床前明月光,疑是地上霜。举头望明月,低头思故乡。
</div>
<p id="wordCount"></p>
<script>
myDiv = document.getElementById('myDiv');
wordCount = myDiv.textContent.length;
display = '${wordCount}字';
getElementById('wordCount').textContent = display;
</script>
</body>
</html>
【以下回答由 GPT 生成】
问题的关键在于JavaScript的textContent
属性,它返回的是元素的文本内容,并不区分汉字和其他字符。因此,使用textContent.length
来统计汉字数量是不准确的。
解决这个问题的解决方案是使用正则表达式来匹配汉字,并统计匹配到的数量。下面是具体的解决方案:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>无标题文档</title>
</head>
<body>
<div id="myDiv">
床前明月光,疑是地上霜。举头望明月,低头思故乡。
</div>
<p id="wordCount"></p>
<script>
var myDiv = document.getElementById('myDiv');
var text = myDiv.textContent; // 获取<div>中的文本
// 使用正则表达式匹配汉字,将所有非汉字字符替换为空字符串
var chineseCharacters = text.replace(/[^\u4e00-\u9fa5]/g, '');
var wordCount = chineseCharacters.length; // 统计汉字数量
var display = wordCount + '字';
document.getElementById('wordCount').textContent = display;
</script>
</body>
</html>
这段代码首先获取<div>
元素中的文本内容,然后使用replace
方法结合正则表达式/[^\u4e00-\u9fa5]/g
将非汉字字符替换为空字符串。最后,统计替换后的内容的长度,即为汉字数量。
这样,你就可以通过JavaScript统计汉字数量并将结果显示在页面上了。
【相关推荐】
下次细心点,题主
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<div id="myDiv">
床前明月光,疑是地上霜。举头望明月,低头思故乡。
</div>
<p id="wordCount"></p>
<script>
const myDiv = document.getElementById('myDiv');
var wordCount = myDiv.textContent.length;
var display = `${wordCount}字`;
document.getElementById('wordCount').textContent = display;
</script>
</body>
</html>