字符串中全角半角之间的转换

  前几天,在做表单验证的时候,发现用户在输入表单内容的时候,正常情况下都是半角输入,但是也有可能是全角输入,所以就牵扯到全角输入内容的验证,这里便提供全角和半角之间的转换函数,与大家分享一下:

  1、js判断文字是全角还是半角:

1 str="中文;;a"   
2 alert(str.match(/[\u0000-\u00ff]/g))   //半角  
3 alert(str.match(/[\u4e00-\u9fa5]/g))   //中文  
4 alert(str.match(/[\uff00-\uffff]/g))   //全角

  2、全角与半角之间的相互转换:

    首先,先得明确以下信息:

    a.全角空格为12288,半角空格为32;

    b.其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248;

  半角转换为全角函数:

 1 function ToDBC(txtstring) { 
 2   var tmp = ""; 
 3   for(var i=0;i<txtstring.length;i  { 
 4     if(txtstring.charCodeAt(i)==32){ 
 5       tmp= tmp  String.fromCharCode(12288); 
 6     } 
 7     if(txtstring.charCodeAt(i)<127){ 
 8       tmp=tmp String.fromCharCode(txtstring.charCodeAt(i) 65248); 
 9     } 
10   } 
11   return tmp; 
12 } 

  上面用到了js的charCodeAt() 方法与fromCharCode() 方法。

  charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。

  fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串。

  全角转换为半角函数:

 1 function ToCDB(str) { 
 2   var tmp = ""; 
 3   for(var i=0;i<str.length;i  ){ 
 4     if (str.charCodeAt(i) == 12288){
 5       tmp  = String.fromCharCode(str.charCodeAt(i)-12256);
 6       continue;
 7     }
 8     if(str.charCodeAt(i) > 65280 && str.charCodeAt(i) < 65375){ 
 9       tmp  = String.fromCharCode(str.charCodeAt(i)-65248); 
10     } 
11     else{ 
12       tmp  = String.fromCharCode(str.charCodeAt(i)); 
13     } 
14   } 
15   return tmp 
16 } 

  这便是这次项目的收获,希望可以帮助到有类似需求的朋友。

 


更多专业前端知识,请上 【猿2048】www.mk2048.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值