gpt4 book ai didi

javascript - 获取文本区域的统计信息(单词、行、字符)

转载 作者:行者123 更新时间:2023-11-28 11:08:21 30 4
gpt4 key购买 nike

我想计算文本区域的字数、字符数和行数。这是我的代码:这是完美的做法吗?

function getStats() {
var text = textarea.value,
chars = text.length,
words = text.split(/\S+/g).length - 1,
lines = text.split("\n").length;
return lines + " lines, " + words + " words, " + chars + " chars";
}

有更正吗?

最佳答案

虽然它可能工作正常,但您的做事方式存在一些更固有的问题。

首先,您使用的是全局变量(或者至少不是局部变量)。您的函数依赖于 textarea 变量,该变量是在函数外部定义的,因此不灵活且难以测试。相反,为什么不只接受一个 textarea 元素来检查呢?或者更好的是,不是对元素进行操作,而是对字符串进行操作?这在概念上更有意义(统计信息不是元素的统计信息,而是其值的统计信息),并创建更灵活的代码。

其次,你的函数的命名含糊不清。 getStats ?获取什么的统计数据?这些统计数据是什么?他们是24岁男性的平均高度吗?将函数重命名为更有意义的名称将极大地改进它。

第三,您的函数执行两件事:它计算文本区域的统计信息,然后将它们格式化为字符串。但是,如果您想要不同的格式而不是该字符串怎么办?或者只是行数,而不是其他任何东西?为什么不返回一个字符串,而返回一个数据结构(一个简单的对象),其中包含这些统计信息?这样您就可以按照您想要的任何方式格式化数据。

第四,你对单词的定义有点……奇怪。定义一个单词已经够困难的了,你的定义表明 . (和其他)本身就是一个单词,所以 hello ! 由两个单词组成,而不是一个。这是正确的吗?

关于javascript - 获取文本区域的统计信息(单词、行、字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19603636/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com