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


猜你喜欢
Python实现猜拳与猜数字游戏的方法详解

Python使用grequests并发发送请求的示例
python imutils包基本概念及使用

python将pandas datarame保存为txt文件的实例
python 日期排序的实例代码
mysql删除操作其实是假删除问题
DOM 精简知识教程

详谈vue中router-link和传统a链接的区别
ASP 正则表达式常用的几种方法(execute、test、replace)
python help函数实例用法
Windows Server2008 R2 MVC 环境安装配置教程

Burpsuite模块之Burpsuite Intruder模块详解

MySQL GTID主备不一致的修复方案
MySQL时间盲注的五种延时方法实现

MySQL 逻辑备份与恢复测试的相关总结
Python实现的爬取百度贴吧图片功能完整示例
Python简单获取自身外网IP的方法
numpy数组之存取文件的实现示例
解决springboot yml配置 logging.level 报错问题
SQL Server中关于基数估计计算预估行数的一些方法探讨
