js计算字数的方法(与word计算出来一样)

【背景】

用户经常要求某个字段要求限制填写多少字,可是js通过value.length取出来的往往跟实际字数相差很多。经常有用户抱怨,明明没写那么多字,可是系统却提示超出字数限制。于是,我研究了word计算字数的规则,写了一段这样程序。

【参考代码】

//用word方式计算正文字数
function fnGetCpmisWords(str){
	sLen = 0;
	try{
		//先将回车换行符做特殊处理
   		str = str.replace(/(\r\n+|\s+| +)/g,"龘");
		//处理英文字符数字,连续字母、数字、英文符号视为一个单词
		str = str.replace(/[\x00-\xff]/g,"m");
		//合并字符m,连续字母、数字、英文符号视为一个单词
		str = str.replace(/m+/g,"*");
   		//去掉回车换行符
		str = str.replace(/龘+/g,"");
		//返回字数
		sLen = str.length;
	}catch(e){

	}
	return sLen;
}

说明:

计算的时候用了一个特殊的汉字"龘"拆分,实在想不到更好的,如果有好的方法,烦请说一下。

js计算字数的方法(与word计算出来一样)

时间: 2024-10-10 19:43:08

js计算字数的方法(与word计算出来一样)的相关文章

js实现的购物车选中商品实现计算商品总价格

js实现的购物车选中商品实现计算商品总价格:为了在激烈的互联网竞争中获得一席之地,都努力使自己的网站更为人性化,比如在购物网站一般都有这样的功能,那就是在结算商品的时候,网站可以自动计算要购买商品所需要花费的金钱数量.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http:

vue中计算属性,方法,侦听器

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>vue中计算属性,方法,侦听器</title> <script src="./vue.js"></script> </head> <body> <div id="app&qu

一种计算e的方法

原文地址:http://hankjin.blog.163.com/blog/static/3373193720108811316123/ 原理:平均e个(0,1)之间的随机数之和会大于1.原因:n个数之和小于1的概率是1/n!,则n个数之和大于1的概率则是1-1/n!:恰好n个数之后大于1的概率,等于n个数之后大于1的概率减去n-1个数之和大于1的概率,即(1-1/n!) - (1-1/(n-1)!) = (n-1)/n!则n的期望为sum( (n-1)/n! * n ) = sum( (n-1

多项式计算的Horner 方法

Horner 算法是以英国数学家 William George Horner 命名的一种多项式求值的快速算法,实际上,这种快速算法在他之前就已经被Paolo Ruffini使用过了.而中国数学家秦九韶提出这种算法要比William George Horner 早600多年. P(x) 是一个多项式: 我们希望计算x取某个特殊值x0时多项式的值p(x0). 构造一个序列: 那么这个序列b0的值就是多项式的值了. 用程序实现如下: double horner(double p[], int n, d

【转】通过经纬度坐标计算距离的方法(经纬度距离计算)

最近在网上搜索“通过经纬度坐标计算距离的方法”,发现网上大部分都是如下的代码: #define PI 3.14159265 static double Rc = 6378137;  // 赤道半径 static double Rj = 6356725;  // 极半径 class JWD { public: double m_Longitude, m_Latitude; double m_RadLo, m_RadLa; double Ec; double Ed; public: JWD(doub

R语言计算移动平均的方法

移动平均可以使时间序列变平滑,是典型的有序计算问题,其基本算法是:将N个连续的时间序列成员作为一个集合,计算该集合的平均值,并逐项推移该集合.下面用一个例子来说明R计算移动平均的方法. 案例描述: 数据框sales有两个字段:日期和当日销售额,需要计算三日移动平均值.具体算法是:求出前一日.当日.后一日的销售额平均值,并逐日推移.部分源数据如下:     代码: filter(sales$Amount/3, rep(1, 3))     计算结果: 代码解读: R语言可以用函数filter计算移

编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数。定义 Gymnastics 类和 School 类,它们都是 ComputerAverage 的子类。Gymnastics 类中计算选手的平均成绩的方法是去掉一个最低分,去掉一个最高分,然后求平均分;School 中计算平均分的方法是所有科目的分数之和除以总科目数。 要求:定义ComputerAv

题目: 编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数. 定义 Gymnastics 类和 School 类,它们都是 ComputerAverage 的子类. Gymnastics 类中计算选手的平均成绩的方法是去掉一个最低分,去掉一个最高分,然后求平均分: School 中计算平均分的方法是所有科目的分数之和除以总科目数. 要求:定义ComputerAverage的对象为上转型对象,并调用重写的方法averge. 题目用到:1.方法的多态

vue中计算属性vs方法的区别

一 什么是计算属性? 计算属性(computed),也是一个属性,也是用来存储数据用的,但是和data属性相比还是有区别 1 数据是可以进行逻辑处理相关的操作 2 可以对计算属性中的数据进行监视 例如: 调用的方式都是一样的 二 计算属性和方法的区别? 1 计算属性是基于它所依赖的数据进行更新,在有在相关依赖的数据发生变化了才会进行更新,而普通的方法每次都会执行 2 计算属性是有缓存的,只要它所依赖的数据没有发生改变,后面的每一次访问计算属性中的值,都是之前缓存的结果,不会重复执行. 例如: h

计算属性和方法

计算属性 computed:{ } 方法 methods: { } 两者功能上差不多,计算属性是基于依赖缓存的,而methods只要页面重新渲染就会变 想做缓存就用计算属性 原文地址:https://www.cnblogs.com/eunuch/p/9812478.html