PDA

View Full Version : بازگرداندن کاراکترهای ISO-Western به فارسی، البته در JavaScript



eAmin
دوشنبه 19 بهمن 1388, 01:38 صبح
سلام.

در راستای این (http://boplo.ir/php/western-iso-to-persian/) آموزش و تابع ارائه شده در این آدرس، تصمیم به پیاده سازی این تابع در JavaScript کردم.


/**
* Original by AHHP(Amir Hossein Hodjaty Pour) ~ Boplo@Boplo.ir
* Port to JavaScript by Amin Akbari [eAmin [-dot-] JS [-at-] live [-dot-] com]
* License : GPL
*/

function western_to_persian(str) {
var character = {
'\u00db\u00b0' : '\u06f0', '\u00db\u00b1' : '\u06f1', '\u00db\u00b2' : '\u06f2', '\u00db\u00b3' : '\u06f3', '\u00db\u00b4' : '\u06f4', '\u00db\u00b5' : '\u06f5', '\u00db\u00b6' : '\u06f6', '\u00db\u00b7' : '\u06f7', '\u00db\u00b8' : '\u06f8',
'\u00db\u00b9' : '\u06f9', '\u00d8\u00a2' : '\u0622', '\u00d8\u00a7' : '\u0627', '\u00d8\u00a3' : '\u0623', '\u00d8\u00a5' : '\u0625', '\u00d8\u00a4' : '\u0624', '\u00d8\u00a6' : '\u0626', '\u00d8\u00a1' : '\u0621', '\u00d8\u00a8' : '\u0628',
'\u00d9\u00be' : '\u067e', '\u00d8\u00aa' : '\u062a', '\u00d8\u00ab' : '\u062b', '\u00d8\u00ac' : '\u062c', '\u00da\u2020' : '\u0686', '\u00d8\u00ad' : '\u062d', '\u00d8\u00ae' : '\u062e', '\u00d8\u00af' : '\u062f', '\u00d8\u00b0' : '\u0630',
'\u00d8\u00b1' : '\u0631', '\u00d8\u00b2' : '\u0632', '\u00da\u02dc' : '\u0698', '\u00d8\u00b3' : '\u0633', '\u00d8\u00b4' : '\u0634', '\u00d8\u00b5' : '\u0635', '\u00d8\u00b6' : '\u0636', '\u00d8\u00b7' : '\u0637', '\u00d8\u00b8' : '\u0638',
'\u00d8\u00b9' : '\u0639', '\u00d8\u00ba' : '\u063a', '\u00d9\u0081' : '\u0641', '\u00d9\u201a' : '\u0642', '\u00da\u00a9' : '\u06a9', '\u00da\u00af' : '\u06af', '\u00d9\u201e' : '\u0644', '\u00d9\u2026' : '\u0645', '\u00d9\u2020' : '\u0646',
'\u00d9\u02c6' : '\u0648', '\u00d9\u2021' : '\u0647', '\u00db\u0152' : '\u06cc', '\u00d9\u0160' : '\u064a', '\u00db\u20ac' : '\u06c0', '\u00d8\u00a9' : '\u0629', '\u00d9\u017d' : '\u064e', '\u00d9\u008f' : '\u064f', '\u00d9\u0090' : '\u0650',
'\u00d9\u2018' : '\u0651', '\u00d9\u2039' : '\u064b', '\u00d9\u0152' : '\u064c', '\u00d9\u008d' : '\u064d', '\u00d8\u0152' : '\u060c', '\u00d8\u203a' : '\u061b', '\u002c' : '\u002c', '\u00d8\u0178' : '\u061f'
};

for (var i in character) {
var rs = '';
var d = 0;
for (var j = str.indexOf(i); j > -1; j = str.indexOf(i, j)) {
rs += str.substring(d, j);
rs += character[i];
j += i.length;
d = j;
}
str = rs + str.substring(d, str.length);
}

return str;
};



Raw view:


/**
* Original by AHHP(Amir Hossein Hodjaty Pour) ~ Boplo@Boplo.ir
* Port to JavaScript by Amin Akbari [eAmin [-dot-] JS [-at-] live [-dot-] com]
* License : GPL
*/

function western_to_persian(str) {
var character = {
'\u00db\u00b0' : '\u06f0', '\u00db\u00b1' : '\u06f1', '\u00db\u00b2' : '\u06f2', '\u00db\u00b3' : '\u06f3', '\u00db\u00b4' : '\u06f4', '\u00db\u00b5' : '\u06f5', '\u00db\u00b6' : '\u06f6', '\u00db\u00b7' : '\u06f7', '\u00db\u00b8' : '\u06f8',
'\u00db\u00b9' : '\u06f9', '\u00d8\u00a2' : '\u0622', '\u00d8\u00a7' : '\u0627', '\u00d8\u00a3' : '\u0623', '\u00d8\u00a5' : '\u0625', '\u00d8\u00a4' : '\u0624', '\u00d8\u00a6' : '\u0626', '\u00d8\u00a1' : '\u0621', '\u00d8\u00a8' : '\u0628',
'\u00d9\u00be' : '\u067e', '\u00d8\u00aa' : '\u062a', '\u00d8\u00ab' : '\u062b', '\u00d8\u00ac' : '\u062c', '\u00da\u2020' : '\u0686', '\u00d8\u00ad' : '\u062d', '\u00d8\u00ae' : '\u062e', '\u00d8\u00af' : '\u062f', '\u00d8\u00b0' : '\u0630',
'\u00d8\u00b1' : '\u0631', '\u00d8\u00b2' : '\u0632', '\u00da\u02dc' : '\u0698', '\u00d8\u00b3' : '\u0633', '\u00d8\u00b4' : '\u0634', '\u00d8\u00b5' : '\u0635', '\u00d8\u00b6' : '\u0636', '\u00d8\u00b7' : '\u0637', '\u00d8\u00b8' : '\u0638',
'\u00d8\u00b9' : '\u0639', '\u00d8\u00ba' : '\u063a', '\u00d9\u0081' : '\u0641', '\u00d9\u201a' : '\u0642', '\u00da\u00a9' : '\u06a9', '\u00da\u00af' : '\u06af', '\u00d9\u201e' : '\u0644', '\u00d9\u2026' : '\u0645', '\u00d9\u2020' : '\u0646',
'\u00d9\u02c6' : '\u0648', '\u00d9\u2021' : '\u0647', '\u00db\u0152' : '\u06cc', '\u00d9\u0160' : '\u064a', '\u00db\u20ac' : '\u06c0', '\u00d8\u00a9' : '\u0629', '\u00d9\u017d' : '\u064e', '\u00d9\u008f' : '\u064f', '\u00d9\u0090' : '\u0650',
'\u00d9\u2018' : '\u0651', '\u00d9\u2039' : '\u064b', '\u00d9\u0152' : '\u064c', '\u00d9\u008d' : '\u064d', '\u00d8\u0152' : '\u060c', '\u00d8\u203a' : '\u061b', '\u002c' : '\u002c', '\u00d8\u0178' : '\u061f'
};

for (var i in character) {
var rs = '';
var d = 0;
for (var j = str.indexOf(i); j > -1; j = str.indexOf(i, j)) {
rs += str.substring(d, j);
rs += character[i];
j += i.length;
d = j;
}
str = rs + str.substring(d, str.length);
}

return str;
};


از این تابع می تونید دقیقا مثل تابعی که در آدرس بالا معرفی شده استفاده کنید.
موفق باشید.