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


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

      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 } 

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

  • 相关阅读:
    Oracle专家高级编程 第二章 服务器和文件
    Oracle专家高级编程 第一章
    Leetcode 4 寻找两个正序数组的中位数
    Leetcode 3 无重复字符的最长子串
    Leetcode 2 两数相加
    Leetcode 1 两数之和
    gitee开源许可证
    js新特性展开符的使用方式
    webpack高速配置
    JS中日期比较时斜杠与横杠的区别
  • 原文地址:https://www.cnblogs.com/xiaoyaoxingchen/p/8399348.html
Copyright © 2020-2023  润新知