看到了匹配,第一个想到了用正则表达式,哈哈,果然很方便。不过正则表达式高深莫测!我还没有研究明白啊。。目前学了点皮毛。代码如下:

<!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>
<title> new document </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
</head> <body>
<script language="javascript">
function countChar(){ //document.getElementById("counterzj").innerHTML= document.getElementById("status").value.length;
var nums = document.getElementById('status').value;
var zj=nums.replace(/[^\S]/g,"");
document.getElementById("counterzj").innerHTML= zj.length; var sz = nums.replace(/[^0-9]/g,"");
document.getElementById('countersz').innerHTML = sz.length; var hs = nums.replace(/[^\n]/g,"");
document.getElementById('counterhs').innerHTML = hs.length+1; var zm = nums.replace(/[^a-z]/ig,"");
document.getElementById('counterzm').innerHTML = zm.length; var hz=nums.replace(/[^\u4e00-\u9fff]/g,"")
document.getElementById('counterhz').innerHTML = hz.length;
}
</script>
<button type='button' onclick="countChar()">开始生成题目</button><br>
字节数:<span id="counterzj"></span><br>
数字数:<span id="countersz"></span><br>
字母数:<span id="counterzm"></span><br>
行数:<span id="counterhs"></span><br>
汉字数:<span id="counterhz"></span><br>
<textarea id="status"cols="50" rows="30">
</textarea>
</body>
</html>

代码解释:

1、var zj=nums.replace(/[^\S]/g,"");   获取nums中的所有非空白字符,replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。这样读取zi的长度就知道了字节的长度。

^符号用于匹配一行的开头。g用于全文查找出现的所有匹配字符。\S就是匹配所有非空白字符。

2、var sz = nums.replace(/[^0-9]/g,""); 其他同上,0-9用于匹配数字。

3、var hs = nums.replace(/[^\n]/g,""); 其他同1,\n用于匹配换行符。

4、var zm = nums.replace(/[^a-z]/ig,""); 其他同1,a-z用于匹配所有a-z的字母,i表示不区分大小写。

5、var hz=nums.replace(/[^\u4e00-\u9fff]/g,"");其他同1,\u4e00-\u9fff用于表示所有汉字,u4e00到u9fff是汉字的Unicode码值范围。

最后将上述五项的长度输出就行。代码演示如下:

开始生成题目
字节数:
数字数:
字母数:
行数:
汉字数:

代码目前肯定存在诸多的bug,还有不足之处,目前正在改善。并且在想方法匹配单词和注释。

可以进一下网页查看代码:

我的代码

JS 实现计算一段文字中的字节数,字母数,数字数,行数,汉字数。的更多相关文章

  1. js或者jq判断一段文字中是否有自己想要的那几个字,如果有就把那几个字变成红色

    如何判断一段文字中是否有自己想要的那几个字,如果有就把那几个字变成红色(在html中)比如有body中有这么一串文字“驾驶的后视镜的华盛顿”,想要判断里面是否有“驾驶”这两个字,如果有就把这两个字变成 ...

  2. 一段文字中的几个keyword显示高亮

    将一段文字中的几个keyword显示高亮 演示样例:将"我的愿望是当个绿巨人,所以我想让我的皮(derma)肤是绿色"中的"皮肤"显示绿色. <span ...

  3. C++统计一段文字中各单词出现的频率

    #include <iostream> using namespace std; /* run this program using the console pauser or add y ...

  4. js 小数计算为啥和想象中不一样!

    今天遇到了一个比较有趣的事,如果要你计算0.1+0.2等于多少你会怎么回答? "0.3啊!"你可能都不会考虑.我也一样,当a=0.1,b=0.2时 if(a+b === 0.3){ ...

  5. 统计一段文字中出现频率最高的10个单词(c语言)

    注:这次使用C语言做的这个程序.个别不懂的地方和算法部分是请教的其他同学,交流并吸收,所以收获颇多! 在程序中每一个地方我都做了注释,方便同学之间交流.也让老师容易看.程序也有很多不足的地方,但限于本 ...

  6. JS如何截取一段字符中,某一个字符的前面和后面的字符

    比如这里的1992631934@qq.com如何获取到@前面的1992631934和@后面的qq.com js代码如下: var mail="1992631934@qq.com" ...

  7. js replace替换一段文本中所有的相同字符

    在html<textarea>标签中回车换行的代码是: \n,html编辑器的回车换行是:\r\n或是\n. 下图是存入后台的<textarea>的文本,需要在页面上显示出来, ...

  8. 从一段文字中提取出uri信息

    package handle.groupby; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io ...

  9. unity插件,从一段文字中提取中文并去重

    using System.Collections.Generic; using System.Text.RegularExpressions; using UnityEditor; using Uni ...

随机推荐

  1. 编写一个BAT脚本协助运维人员遇到问题时候调测数据库是否有效连接成功的操作攻略

    简单摘要: 1.内网系统出现故障需要排查 2.运维人员不熟悉数据库操作,没法通过连接数据库和执行SQL语句的方式排查数据库及数据是否正常 3.解决方案:编写一个bat脚本,运维人员双击运行即可.   ...

  2. 【PAT】B1057 数零壹(20 分)

    简单题,简单字符串处理加简单数学进制转换 #include<stdio.h> #include<string.h> #include<ctype.h> int ma ...

  3. Class doesn't contain any JAX-RS annotated method

    项目中使用了Jersey RESTful风格的注解 , 根据错误提示就知道了 , 在类中没有带注解的方法 ,所以只要在方法上添加 @path() 注解就行了,至少要有一个方法带有Jersey注解

  4. 随机生成&部门匹配

    整体概况 1.完整程序概况 (1)程序整体构架 (2)生成程序模型 (3)匹配算法模型 (4)生成结果评估 (5)命名规范 (6)先期和后期分工 2.心路历程与对全新的java认识(心得体会篇) (1 ...

  5. Django Form ModelForm modelfromset

    forms 组件 Form 组件 form表单完成的事情 提供input可以提交数据 对提交的数据进行校验 提供错误提示 定义form组件 from django import forms class ...

  6. Expires和Cache-Control的理解

    最近在学Nginx,学到有个地方式设置响应头信息,其中有两项是设置Expires和Cache-Control,来设置缓存时间,后来发现"并没有什么卵用",于是就搜了下资料,把整个思 ...

  7. SQL Server中将查询结果转换为Json格式脚本

    这篇文章主要介绍了SQL Server中将查询结果转换为Json格式脚本分享,本文直接给出实现代码,需要的朋友可以参考下 原文地址:http://www.jb51.net/article/61462. ...

  8. (一 ) 天猫精灵接入Home Assistant-服务器搭建

    ()1登陆阿里云 https://ecs.console.aliyun.com/?spm=5176.2020520001.0.0.6B1Uov#/home 账号dongdongmqtt 密码***** ...

  9. M100 (0)开发

    [SDCC 2015现场]大疆Paul Yang:多旋翼飞行器的未来就是机器人的未来 http://www.csdn.net/article/2015-11-19/2826268 开发官网 https ...

  10. Percona XtraDB Cluster集群

    官网参考地址: https://www.percona.com/doc/percona-xtradb-cluster/LATEST/configure.html 前期准备: 都用的root权限或使用s ...