当前位置: 首页 > 图文教程 > 网络编程 > Javascript > JS教程:JavaScript全半角转换

Javascript
网页中的图片的处理方法与代码
用javascript实现jquery的document.ready功能的实现代码
Exitjs获取DataView中图片文件名
javascript 加入收藏、设为首页(IE,firefox兼容脚本之家版)
isArray()函数(JavaScript中对象类型判断的几种方法)
Javascript 二维数组
js setattribute批量设置css样式
Javascript 复制数组实现代码
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
JavaScript 闭包在封装函数时的简单分析
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
JavaScript 字符串操作的几种常见方法
javascript &&和||运算法的另类使用技巧
[原创]javascript代码在ie8里报错 document.getElementById(...) 为空或不是对象的解决方法
js鼠标移动在title中显示图片的效果代码
JavaScript Alert通用美化类
javascript 新闻列表排序简单封装
Javascript 构造函数,公有,私有特权和静态成员定义方法
javascript 设置某DIV区域内的checkbox复选框
document.body.scrollTop 值总为0的解决方法 比较常见的标准问题

Javascript 中的 JS教程:JavaScript全半角转换


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-03-17   浏览: 178 ::
收藏到网摘: n/a

规律:半角空格的 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();
}