charAt,chartCodeAt,codePointAt,fromCodePoint,fromCharCode

news/2024/10/19 9:36:27/

 生僻字的length算2,有些空格是特殊空格,比如\u3000

u+3000不是全角空格,u+3000是表意字空格(Ideographic Space),宽度和一个表意字(汉字)相同。它应当被当做汉字来处理。比如,在一些排版中,在特别尊敬的人的名字前面要空一格,这时候就应该用表意字空格u+3000。或者在一些中文名单列表里,两个字的姓名要中间空一个字,来和三个字的姓名对齐,这时候也应该用表意字空格u+3000。由上可知,表意字空格u+3000绝不能被随意删去,否则会导致排版甚至语义出现问题。u+2003才是全角空格(Em Space,更准确的翻译是全身空格),宽度和一个字身高度相同(也就是等于字号)。这两者在大部分情况下宽度相同,因而容易混淆。但是,假设有一款中文字体的汉字是窄的,比如宽度只有高度的三分之二,那么,此时表意字空格u+3000也应该和汉字一样是三分之二宽,而全角空格u+2003应该始终是个正方形(宽度和高度一样)

 \u3000之类的特殊空格无法用js自带的trim()删除,但可以用正则的\s删除

let str = '   abcde    ';// 使用一个正则表达式同时处理开头和结尾的空格
str = str.replace(/^\s+|\s+$/g, match => 'p'.repeat(match.length));
// console.log(str);

 

 

/*
charAt 返回的是指定位置的字符(字符串形式)。
charCodeAt 返回的是指定位置的字符的 Unicode 编码(数值形式,10进制)。
Unicode编码取值: 0 - 65535  (0x0000 - 0xFFFF),
js中Unicode是以十六进制代码外加开头 \u 表示的字符串,例如:爱   js中表示为 \u7231
*/
var r='魇😀😀🤣𠮷严 a 𤾩 w看'
for(let i of r){console.log('======length测量的长度',i.length);if(i.length==2){for (let j = 0; j < i.length; j++) {  let char = i.charAt(j);let code = i.charCodeAt(j);let pt = i.codePointAt(j);console.log(`当前是${i},长度为2:,charAt为 ${char},10进制: ${code}, 16进制: ${code.toString(16)},码点:${pt}`);  }}else{let char = i.charAt();let code = i.charCodeAt();  let pt = i.codePointAt();console.log(`当前是${i},长度为1: charAt为${char},10进制: ${code}, 16进制: ${code.toString(16)},码点:${pt}`);  }
}
//fromCodePoint可以接受0x开头的16进制,也可以默认的10进制
String.fromCodePoint(0xd83d,0xde00);//输出😀
String.fromCodePoint(119,30475);//输出w看
String.fromCodePoint(39751);//如果字符length为2,用codePointAt获取第0位的码点即可还原/***********************\
\u4e2d\u56fd中国
4e2d转成10进制是20013
56fd转成10进制是22269
/***********************/
String.fromCharCode(20013)//中
String.fromCharCode(22269)//国


http://www.ppmy.cn/news/1538911.html

相关文章

SpringBoot高校学科竞赛平台:性能优化与实践

3系统分析 3.1可行性分析 通过对本高校学科竞赛平台实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本高校学科竞赛平台采用SSM框架&#xff0c;JAVA作为开发语…

大模型百科:超详细解读与学习路线图

大模型的定义 大模型是指具有数千万甚至数亿参数的深度学习模型。近年来&#xff0c;随着计算机技术和大数据的快速发展&#xff0c;深度学习在各个领域取得了显著的成果&#xff0c;如自然语言处理&#xff0c;图片生成&#xff0c;工业数字化等。为了提高模型的性能&#xf…

RandLA-Net 基于 Tensorflow , 训练自定义数据集

搭建 RandLA-Net 训练环境, 生成自定义训练数据集, 训练自定义数据集. Code: https://github.com/QingyongHu/RandLA-Net 搭建训练环境 Clone the repositorygit clone --depth=1 https://github.com/QingyongHu

Mac 安装 Telnet 工具

方案一 通过 brew install telnet 时会要求安装 xcode 安装命令 brew install telnet报错信息&#xff1a; Warning: No remote origin in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-services, skipping update! Running brew update --auto-update... > Auto-…

SpringMVC Controller返回值技巧:ModelAndView vs String的实战对比

前言 SpringMVC的相关小细节较多&#xff0c;这个博客主要针对控制层&#xff08;Controller&#xff09;中控制器方法的返回值为ModelAndView类型和返回值为String类型区别做出比较和案例实现 第一步&#xff1a;创建web项目&#xff0c;添加依赖&#xff0c;配置web.xml 添加…

ubuntu 开放 8080 端口快捷命令

文章目录 查看防火墙状态开放 80 端口开放 8080 端口开放 22端口开启防火墙重启防火墙**使用 xhell登录**&#xff1a; 查看防火墙状态 sudo ufw status [sudo] password for crf: Status: inactivesudo ufw enable Firewall is active and enabled on system startup sudo…

LINUX---shell变量(或bash变量)和环境变量的区别

Shell 变量是特定于当前 shell 会话的变量。 作用范围&#xff1a;仅在当前 shell 会话中有效。如果你打开了多个终端窗口&#xff0c;每个窗口都有自己的一组 shell 变量&#xff0c;彼此独立。 生命周期&#xff1a;随着 shell 会话的结束而消失&#xff0c;不会传递给其他 …

Nodejs和C#使用ECDH算法交换秘钥

转载于&#xff1a;https://bkssl.com/document/nodejs-csharp-ecdh.html nodejs的ECDH算法在进行computeSecret的时候不会自动进行HASH运算&#xff0c;但C#的ECDH算法必须指定HASH算法。 两边算法必须使用相同的椭圆曲线和Hash算法&#xff0c;例如下面用例都是用的SHA256。…