|
|
全角/半角的转换函数 |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
前几天在OA Web开发过程中,一位公务员领导突发奇想,要求我把用户输入的所以字符串中的全角字符都转换为半角(unicode)。由于我在这方面的没有了解,于是上google搜索转换函数,发现国内很少有文章涉及到相关信息。其中一个是 http://www.jxyc.gov.cn/blog/withwolf/showlog.asp?log_id=468&cat_id=0 但此函数不能处理混合输入问题,当全角半角一起输入时就出错。参照上面程序,再结合一些Unicode Wide 编码规则: 请参考 以下是转换程序(javascript) /**************************** * 参数说明: * 全角->半角 * str:要转换的字符串 * 返回值类型:字符串 **************************** / function DBC2SBC(str) { var i; var result=''; for(i=0;i<str.length;i++) { code=str.charCodeAt(i); // “65281”是“!”,“65373”是“}” if(code>=65281&&code<65373) // “65248”是转换码距 result+=String.fromCharCode(str.charCodeAt(i)-65248); else result+=str.charAt(i); } alert(result); return result; } /*****************************/ 以上程序能转换以下编码。若要转换其他特殊的全角符号,请参考http://ha1.seikyou.ne.jp/home/akairingosaita/hangul/dec-unicode-ks.txt 65281 ! 65282 " 65283 # 65284 ¥ 65285 % 65286 & 65287 ' 65288 ( 65289 ) 65290 * 65291 + 65292 , 65293 - 65294 . 65295 / 65296 0 65297 1 65298 2 65299 3 65300 4 65301 5 65302 6 65303 7 65304 8 65305 9 65306 : 65307 ; 65308 < 65309 = 65310 > 65311 ? 65312 @ 65313 A 65314 B 65315 C 65316 D 65317 E 65318 F 65319 G 65320 H 65321 I 65322 J 65323 K 65324 L 65325 M 65326 N 65327 O 65328 P 65329 Q 65330 R 65331 S 65332 T 65333 U 65334 V 65335 W 65336 X 65337 Y 65338 Z 65339 [ 65510 \ 65341 ] 65342 ^ 65343 _ 65344 ` 65345 a 65346 b 65347 c 65348 d 65349 e 65350 f 65351 g 65352 h 65353 i 65354 j 65355 k 65356 l 65357 m 65358 n 65359 o 65360 p 65361 q 65362 r 65363 s 65364 t 65365 u 65366 v 65367 w 65368 x 65369 y 65370 z 65371 { 65372 | 65373 }
|
|
相关文章:相关软件: |
|