javascript - Javascript 简单的单词计数器
问题描述
我正在尝试为 Javascript 中的 textarea 元素制作一个简单的单词计数器。到目前为止,我已经尝试了很多方法,但每个人都失败了。我在网上搜索,但我只找到了使用我仍然不知道的函数或 JS 命令和语法的解决方案。目标是计算文本区域中最多包含 140 个字符的单词。文本也可以不止一行,所以我必须考虑换行符。直到现在我写了这个:
for (let i = 0; i < text.length; i++) {
if (text[i]==' ' && (text[i-1]!==' ' && text[i-1]!=='\n')) {
wc++;
}
else if(text[i]=='\n' && text[i-1]!==' '){
wc++;
}
}
它有点用,但只有在我按空格键后才算。有没有办法从用户只输入一个字母开始计数?编辑:我已经尝试过 .split(" ") 方法,但它不适用于 ENTER/RETURN 键。我的目标是在用户输入字母后立即开始计数。
解决方案
您可以将split
正则表达式与空格一起使用
let words = text.split(/\W/);
wc = words.length;
split 将您的字符串分解为一个数组,每次找到您传递给它的表达式时,它都会为该数组创建一个新条目。
正则表达式/\W/
获取空格(' ' 和 '\n')
所以这样它会创建一个每个单词都分开的数组,然后你只需要检查数组的长度
推荐阅读
- c# - LINQ 过滤器可以改变原始列表的顺序吗?
- c# - 如何从 wpf c# 中动态添加的组合框获取价值?
- python - 浮点数计算时的小数值误差
- python - 使用 Python 的点图的节点和边的上下文菜单
- terraform - Terraform 以正确的顺序创建资源,但以错误的顺序销毁它们
- c# - 使用 FFMPEG(c# 应用程序)向视频添加文本
- android - 在不使用云服务的情况下,在哪里使用 React Native 将数据存储在本地以保持持久性和安全性?
- activerecord - ActiveRecord 视图为单个记录方法生成 SQL
- snowflake-cloud-data-platform - where used list - 查询雪花元数据信息
- java - 如何将 imageViews 设置为单击而不是双击