同理:
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 中间的符号也转换。很多时候,这并不是我们需要的(比如将 @ 转换为 @)。下面的代码侵入性更小:
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)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();}