/**
* 计算字符串长度
* 参数是要计算的字符串
* 返回值当前字符串的长度
*/
function charactersLen (words) {
let tempMapWordNum = {}
let doubleByteTotal = 0 // 双字节
let chineseTotal = 0 // 汉字
let singleByteTotal = 0 // 单字节
let numTotal = 0
for (let i = 0; i < words.length; i++) {
let c = words.charAt(i)
if (c.match(/[\u4e00-\u9fa5]/)) { // 汉字
if (isNaN(tempMapWordNum[c])) {
tempMapWordNum[c] = 1
}
chineseTotal++
}
}
for (let i = 0; i < words.length; i++) {
let c = words.charAt(i)
if (c.match(/[^\x00-\xff]/)) { // 这里^表示相反的意思,Ascii码大于255的那些字符,双字节的字符
doubleByteTotal++
} else {
singleByteTotal++
}
if (c.match(/[0-9]/)) {
numTotal++
}
}
// 双字节的内容减去汉字剩下双字节标点,单字节内容减去数字剩下单字节符号
return chineseTotal + (doubleByteTotal - chineseTotal) + (singleByteTotal - numTotal) + (numTotal)
}

JS计算字符串长度(兼容后端PHP)的更多相关文章

  1. JS计算字符串长度(中文算2个)

    /** * @return {number} */ getRealLength = function(str) { var realLength = 0, len = str.length, char ...

  2. JS判断字符串长度的5个方法

    这篇文章主要介绍了JS判断字符串长度的5个方法,并且区分中文和英文,需要的朋友可以参考下 目的:计算字符串长度(英文占1个字符,中文汉字占2个字符)   方法一:    代码如下: String.pr ...

  3. JS判断字符串长度(中文长度为2,英文长度为1)

    目的:计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: String.prototype.gblen = function() { var len = 0; for (var i=0; ...

  4. [转载] python 计算字符串长度

    本文转载自: http://www.sharejs.com/codes/python/4843 python 计算字符串长度,一个中文算两个字符,先转换成utf8,然后通过计算utf8的长度和len函 ...

  5. php 计算字符串长度

    在项目的开发中,常常遇到要计算一个字符串的长度(中英文结合),由于产品要求不同,每个中文的长度要求也不一样. 解决utf-8编码下的字符串长度(可自定义每个中英文算几个字节) /** * 计算字符串长 ...

  6. php计算字符串长度:utf8编码,包含中文

    php计算字符串长度:utf8编码 中文当作1个字符处理(strlen默认当作两个字符) 上函数: /** * 计算 UTF-8 字符串长度 * * @param string $str * @ret ...

  7. ios 计算字符串长度<转>

    - (int)textLength:(NSString *)text//计算字符串长度 {     float number = 0.0;     for (int index = 0; index ...

  8. JS获取字符串长度(区分中英文)

    JS获取字符串长度(区分中英文) 中文算2个字,英文一个. function getStrLength(str) {      var cArr = str.match(/[^\x00-\xff]/i ...

  9. JS判断字符串长度的5个方法(区分中文和英文)

    目的:计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: 代码如下: String.prototype.gblen = function() {    var len = 0;    fo ...

随机推荐

  1. 在 iOS 上编译 webkit 源码

    准备工作 买一台 mac 下载并安装 Xcode 下载源码 git clone git://git.webkit.org/WebKit.git WebKit 这个可能要耗费很久很久 编译源码 打开 X ...

  2. ffmpeg开发基础知识

    1.音频采集 面临的问题:延时敏感,噪声消除,回声消除,静音检测 主要参数: 采样率,位宽,声道数,音视频帧 采样率: 也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它 ...

  3. spring基础回顾

    1.什么是Spring框架?Spring框架有哪些主要模块? Spring框架是一个为Java应用程序的开发提供了综合.广泛的基础性支持的Java平台.Spring帮助开发者解决了开发中基础性的问题, ...

  4. centos 7 nginx 安装

    1.下载nginx rpm包 下载地址:http://nginx.org/packages/mainline/centos/7/x86_64/RPMS/ ,可查看所有安装包 从中如下载: wget h ...

  5. Java之集合(一)接口及抽象类

    转载请注明源出处:http://www.cnblogs.com/lighten/p/7278655.html 1.前言 从本章开始介绍Java的集合类,这些类主要存在于java.util包下,该系列基 ...

  6. 关于 PHP 开放 enable_dl 函数利用 图片Disable_functions

    三篇引文地址: 利用PHP扩展模块突破Disable_functions执行命令 如何编写PHP扩展 php dl函数(详细解释)

  7. 《LeetBook》leetcode题解(18) : 4Sum[M]

    我现在在做一个叫<leetbook>的免费开源书项目,力求提供最易懂的中文思路,目前把解题思路都同步更新到gitbook上了,需要的同学可以去看看 书的地址:https://hk029.g ...

  8. Chapter 3 Phenomenon——3

    It took every ounce of my concentration to make it down the icy brick driveway alive. 我用所有我的注意力去确定车道 ...

  9. 电信固定ip宽带80与8080端口踩坑

    本文只是作为记录,避免后面遇到此类问题耗费时间. 实际情况:公司有个固定电信宽带是固定IP的,想把固定IP映射到测试环境ip,实现可以公网通过固定ip访问,内网通过局域网ip访问. 测试环境服务是占用 ...

  10. Ethereum 源码分析之框架

    accounts 实现了一个高等级的以太坊账户管理     bmt          二进制的默克尔树的实现     build           主要是编译和构建的一些脚本和配置     cmd  ...