DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> JS教程:JavaScript全半角轉換
JS教程:JavaScript全半角轉換
編輯:關於JavaScript     

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

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved