JavaScript 全半角转换
作者:lifesinger 来源:蓝色理想 发布时间:2010-02-04 17:14:00
规律:半角空格的 charCode 为 32, 全角空格为 12288. 其他半角字符 ( 33 – 126 ) 与全角 ( 65281 – 65374 ) 的对应关系是:均相差 65248.
找好规律,代码就好写了:
var hash = {32 : u3000};// 半角转全角function sbc2dbc(str) {var ret = [], i = 0, len = str.length, code, chr;for (; i 31 && code < 127) {chr = hash[code] = String.fromCharCode(code + 65248);}ret[i] = chr ? chr : str.charAt(i);}return ret.join();}
同理:
var hash = {12288 : };// 全角转半角function dbc2sbc(str) {var ret = [], i = 0, len = str.length, code, chr;for (; i 65280 && code < 65375) {chr = hash[code] = String.fromCharCode(code - 65248);}ret[i] = chr ? chr : str.charAt(i);}return ret.join();}
上面的代码会将 33 - 126 中间的符号也转换。很多时候,这并不是我们需要的(比如将 @ 转换为 @)。下面的代码侵入性更小:
var hash = {};// 半角转全角。仅转换 [0-9a-zA-Z]function sbc2dbc_w(str) {var ret = [], i = 0, len = str.length, code, chr;for (; i < len; ++i) {code = str.charCodeAt(i);chr = hash[code];if (!chr &&(47 < code && code < 58 ||64 < code && code < 91 ||96 < code && code < 123)) {chr = hash[code] = String.fromCharCode(code + 65248);}ret[i] = chr ? chr : str.charAt(i);}return ret.join();}
详细测试页面:sbc2dbc-test.html
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 1. SQL Server导入导出向导,这种方式是最方便的.导入向导,微软提供了多种数据源驱动,包括SQL Server Native Cl
- 正常在使用百度地图时,我们可以通过BMap的实例对象提供的方法计算距离:var map = new BMap.Map('map_ca
- def ddns():"""用当前ip更新ddns"""headers = {&
- 本文实例讲述了Python socket实现的文件下载器功能。分享给大家供大家参考,具体如下:文件下载器先写客户端再写服务端1.tcp下载器
- 对于程序开发新手来说,一个最常见的困惑是测试的主题。他们隐约觉得“单元测试”是很好的,而且他们也应该做单元测试。但他们却不懂这个词的真正含义
- python操作mongodb数据库# !/usr/bin/env python# -*- coding:utf-8 -*-"&q
- 我就废话不多说啦,还是直接看代码吧!list1 = [1,2,3,4]a,b,c,d = list1则a = 1b =2等这种方式只有当左边
- 前言之前提交的github copilot技术预览版申请,今天收到准入邮件,于是安上试一试这个准备把我送去电子厂上班的copy a lot
- mysql存储引擎:MySQL服务器采用了模块化风格,各部分之间保持相对独立,尤其体现在存储架构上。存储引擎负责管理数据存储,以及MySQL
- 网站标准(或称“WEB标准”)对于每一个开发网站和做网页的人来说,都是不可忽视的,这不仅是一个潮流,而是一个标准,一个更加符合规范的做法,而
- 前言今天呢,笔者想和大家聊聊python+pytest接口自动化中将代码进行封装,只有将测试代码进行封装,才能被测试框架识别执行。例如单个接
- 前言本文主要给大家介绍了关于不同版本中Python matplotlib.pyplot.draw()界面绘制异常的相关内容,分享出来供大家参
- 实现思路是先获取到当前最上面活动的窗口信息,然后提取该窗口的名称信息。之后获取窗口的坐标信息,即左上角的开始坐标及右下角的结束坐标。最后直接
- 一、字典的基本操作1.定义字典 字典也是一个列表型的数据结构,字典的数据是用“{ }&rd
- 如何让用户也能修改密码? 好了,照下面添加到你要添加的地方去:<%id = Request(&qu
- 可以不依靠DSN,但又可以在数据库连接字符串中指定驱动程序、服务器名字、数据库、数据库账号和密码吗?可以。在SQL Server 7,使用这
- Console 对象提供对浏览器控制台的接入(如:Firefox 的 Web Console)。不同浏览器上它的工作方式是不一样的,但这里会
- Python 类/对象Python 是一种面向对象的编程语言。Python 中的几乎所有东西都是对象,拥有属性和方法。类(Class)类似对
- 1 俄罗斯方块游戏《俄罗斯方块》原本是前苏联科学家阿列克谢·帕基特诺夫所开发的教育用软件,之后开始提供授权给各个游戏公
- 前言几乎每个程序都需要用到图片。下面就来给大家介绍前端+PHP后端实现微信小程序实现图片上传功能,分享出来供大家参考学习,下面话不多说了,来