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


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

      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 } 

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

  • 相关阅读:
    python's eithteenth day for me 面向对象——命名空间
    python's seventeenth day for me 面向对象
    python's sixteenth day for me 员工信息表
    python's fifteenth day for me 递归函数
    python's fourteenth day for me 内置函数
    用装饰器做一个登陆功能(进阶):
    装饰器 为多个函数加上认证功能(账号密码来源于文件),要求只要登陆成功一次,后续函数则无需登陆。
    python's thirteenth day for me 迭代器 生成器
    php函数
    php日期格式
  • 原文地址:https://www.cnblogs.com/xiaoyaoxingchen/p/8399348.html
Copyright © 2020-2023  润新知