القاعدة: رمز charCode لمساحة نصف العرض هو 32، وcharCode لمسافة كاملة العرض هو 12288. العلاقة المقابلة بين الأحرف الأخرى بنصف العرض (33 – 126) والأحرف ذات العرض الكامل (65281 – 65374) هي : الفرق هو 65248.
بمجرد العثور على القواعد، سيكون من السهل كتابة الكود:
var hash = {'32' : 'u3000'};
// نصف العرض إلى العرض الكامل
وظيفة sbc2dbc (شارع) {
var ret = []، i = 0، len = str. length، code، chr؛
لـ (؛ أنا < لين؛ ++i) {
كود = str.charCodeAt(i);
لجنة حقوق الإنسان = التجزئة[كود]؛
إذا (!chr && كود > 31 && كود < 127) {
chr = hash[code] = String.fromCharCode(code + 65248);
}
ret[i] = chr ?
}
العودة ret.join('');
}
نفس السبب:
فار هاش = {'12288' : ' '};
// العرض الكامل إلى نصف العرض
وظيفة dbc2sbc (شارع) {
var ret = []، i = 0، len = str. length، code، chr؛
لـ (؛ أنا < لين؛ ++i) {
كود = str.charCodeAt(i);
لجنة حقوق الإنسان = التجزئة[كود]؛
إذا (!chr && كود > 65280 && كود <65375) {
chr = hash[code] = String.fromCharCode(code - 65248);
}
ret[i] = chr ?
}
العودة ret.join('');
}http://qqface.knowsky.com/
سيقوم الكود أعلاه أيضًا بتحويل الرموز الموجودة في النطاق 33 - 126. في كثير من الأحيان، ليس هذا ما نحتاجه (مثل تحويل @ إلى @). الكود التالي أقل تدخلاً:
فار هاش = {};
// تحويل نصف العرض إلى العرض الكامل. تحويل فقط [0-9a-zA-Z]
وظيفة sbc2dbc_w(شارع) {
var ret = []، i = 0، len = str. length، code، chr؛
لـ (; أنا < لين; ++i) {
كود = str.charCodeAt(i);
لجنة حقوق الإنسان = التجزئة[كود]؛
إذا (!chr &&
(47 < كود && كود < 58 ||
64 < كود && كود < 91 ||
96 < كود && كود < 123)) {
chr = hash[code] = String.fromCharCode(code + 65248);
}
ret[i] = chr ?
}
العودة ret.join('');
}
-