JS全角与半角转化小结

2024-06-20 00:18
文章标签 js 转化 小结 全角 半角

本文主要是介绍JS全角与半角转化小结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近在做PC端网站的页面的一个表单校验,需要把全角输入转化成半角符号。之前没有了解过这些编码的知识,还是得Google一下查查资料,故简单总结一下。

什么是全角、半角

传统上,英语或拉丁字母语言使用的电脑系统,每一个字母或符号,都是使用一字节的空间(一字节由8比特组成,共256个编码空间)来储存;而汉语、日语及韩语文字,由于数量大大超过256个,故惯常使用两字节来储存一个字符。在使用等宽字体(如DOS、部分文字编辑器等)的环境下,中日韩文字此时占据两倍于西文字符的显示宽度。所以,中、日、韩等文字称为全角字符,相比起来,拉丁字母或数字就称为半角字符。有时为了使字体看起来齐整,英文字母、数字及其他符号也由原来只占一个字空间,改为占用两个字的空间显示、使用两个字节储存的格式。(维基百科)

转化原理
  • 全角空格unicode编码为12288,半角空格为32
  • 其他字符半角(33-126)与全角(65281-65374)的unicode编码对应关系是:均相差65248
全角转半角
   function ToCDB(str) {var tmp = "";for (var i = 0; i < str.length; i  ) {if (str.charCodeAt(i) > 65248 && str.charCodeAt(i) < 65375) {tmp  = String.fromCharCode(str.charCodeAt(i) - 65248);}else {tmp  = String.fromCharCode(str.charCodeAt(i));}}return tmp}
半角转全角
    function ToDBC(txtstring) {var tmp = "";for (var i = 0; i < txtstring.length; i  ) {if (txtstring.charCodeAt(i) == 32) {tmp = tmp   String.fromCharCode(12288);}else if (txtstring.charCodeAt(i) < 127) {tmp = tmp   String.fromCharCode(txtstring.charCodeAt(i)   65248);}}return tmp;}
参考

全角半角区别

这篇关于JS全角与半角转化小结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1076559

相关文章

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

usaco 1.2 Palindromic Squares(进制转化)

考察进制转化 注意一些细节就可以了 直接上代码: /*ID: who jayLANG: C++TASK: palsquare*/#include<stdio.h>int x[20],xlen,y[20],ylen,B;void change(int n){int m;m=n;xlen=0;while(m){x[++xlen]=m%B;m/=B;}m=n*n;ylen=0;whi

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏

使用JS/Jquery获得父窗口的几个方法(笔记)

<pre name="code" class="javascript">取父窗口的元素方法:$(selector, window.parent.document);那么你取父窗口的父窗口的元素就可以用:$(selector, window.parent.parent.document);如题: $(selector, window.top.document);//获得顶级窗口里面的元素 $(

js异步提交form表单的解决方案

1.定义异步提交表单的方法 (通用方法) /*** 异步提交form表单* @param options {form:form表单元素,success:执行成功后处理函数}* <span style="color:#ff0000;"><strong>@注意 后台接收参数要解码否则中文会导致乱码 如:URLDecoder.decode(param,"UTF-8")</strong></span>

分布式系统的个人理解小结

分布式系统:分的微小服务,以小而独立的业务为单位,形成子系统。 然后分布式系统中需要有统一的调用,形成大的聚合服务。 同时,微服务群,需要有交流(通讯,注册中心,同步,异步),有管理(监控,调度)。 对外服务,需要有控制的对外开发,安全网关。

js react 笔记 2

起因, 目的: 记录一些 js, react, css 1. 生成一个随机的 uuid // 需要先安装 crypto 模块const { randomUUID } = require('crypto');const uuid = randomUUID();console.log(uuid); // 输出类似 '9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d'