全角/半角的转换函数

类别:网站制作 点击:0 评论:0 推荐:
前几天在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 }

本文地址:http://com.8s8s.com/it/it31065.htm