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

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

  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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android HAL 层,三个重要的结构体的源码~

最近在学习android HAL 层 ~ 离不开这三个数据结构~~先贴出来 typedef struct hw_module_t { /** tag must be initialized to HARDWARE_MODULE_TAG */ uint32_t tag; /** major version number for the module */ uint16_t version_major; /** minor version number …

React使用的扩展

待续。。。 转载于:https://www.cnblogs.com/wenxuehai/p/11387188.html

使用命令行工具创建WildFly OpenShift应用程序

通过使用快速入门&#xff0c;可以在OpenShift上轻松配置WildFly的新实例。 只需单击一下&#xff0c;您就可以准备就绪&#xff01; 通常&#xff0c;OpenShift的高级用户使用命令行工具 。 但是&#xff0c;您无法使用CLI工具创建WildFly墨盒。 但现在已解决错误1134134 。 …

word-break属性和css换行显示

这几天在做项目的时候&#xff0c;遇到了比较棘手的问题&#xff0c;便是在一个标签里边展示内容&#xff0c;如果说展示中文汉字&#xff0c;一点问题都没有&#xff0c;但是只要连续展示英文字母或者中文的标点符号&#xff08;中间不带空格&#xff09;&#xff0c;那么所渲…

第四种行转列

--动态处理 select A.StuName,A.BZKTypeName,cast(A.BKCODE as varbinary(MAX)) even, row_number() over (partition by StuName,BZKTypeName order by getdate()) ID into #t1 from BKLIST A --where StuName林健辉 declare sql1 varchar(max) declare sql2…

React-router的基本使用

1、安装使用 $ npm install -S react-router import { Router, Route, hashHistory } from react-router;render((<Router history{hashHistory}><Route path"/" component{App}/></Router> ), document.getElementById(app)); 1.1、版本问题 reac…

使用反应流API将Akka流与rxJava结合在一起

这次只是一篇简短的文章&#xff0c;因为我仍在尝试这种东西。 关于反应式编程有很多话题。 在Java 8中&#xff0c;我们有Stream API&#xff0c;我们有rxJava我们有ratpack &#xff0c;Akka有akka-streams 。 这些实现的主要问题是它们不兼容。 您不能将一个实现的订阅者连…

九宫格有规律高亮滚动效果

前几天朋友去面试&#xff0c;面试官要求当场用九宫格写出一个滚动有规律的大转盘滚动高亮效果&#xff0c;结果可想而知。如下图&#xff1a; 也就是说当页面刚进来的时候&#xff0c;红色方块在左上角&#xff0c;接下来按照图上所标注的箭头方向来依次循环。当我听说了这个面…

[源码学习]调试Razor从哪里开始

使用ASP.NET MVC时&#xff0c;我们知道&#xff0c;要使用Views中的视图&#xff0c;需要在Action中写 return View(); 这个方法返回的返回值是一个 ViewResult&#xff0c;进入这个类&#xff0c;继承了父类ViewResultBase后只写了MasterName属性和FindView方法。 不过已经开…

使用Maven原型高效创建Eclipse模块

Maven Archetype是一个项目模板工具包&#xff0c;可为开发人员提供生成内置或自定义脚手架工件的参数化版本的方法。 最近&#xff0c;我将其应用于我们的Xiliary P2存储库&#xff0c;以实现Eclipse模块存根创建的自动化。 由于效果很好&#xff0c;所以我认为值得在这篇文章…

ubuntu 编译 /usr/bin/ld: cannot find 问题解决

参考文档&#xff1a; http://www.iq38.com/38536.html linux下编译应用程序常常会出现如下错误&#xff1a; /usr/bin/ld: cannot find -lxxx 意思是编译过程找不到对应库文件。其中&#xff0c;-lxxx表示链接库文件 libxxx.so。 注&#xff1a;有时候&#xff0c;由于库文件是…

CSS知识点整理(2):框模型,定位

1. 框模型&#xff1a;Box Model 规定了元素处理元素框处理元素内容、外边距、边框、内边距的方式。 2. 当边距给定的值 可以小于4个。CSS定义了一些规则、处理这中情况&#xff1a; 如果缺少左外边距的值&#xff0c;则使用右外边距的值。如果缺少下外边距的值&#xff0c;则…

Vux的安装使用

1、Vux的安装 1.1、vue-cli的vux模板生成项目 可以直接使用 vue-cli 的模板生成一个 vux 项目 vue init airyland/vux2 projectName 由此可以直接使用 vux。&#xff08;或许运行项目可能会报错&#xff0c;那是 vue-cli 初始项目的通病&#xff09; 1.2、手动安装 vux 首先在项…

Spring Data JPA教程:获取所需的依赖关系

在创建使用Spring Data JPA的应用程序之前&#xff0c;我们需要获取所需的依赖关系。 这篇博客文章标识了必需的组件&#xff0c;并描述了如何使用Maven获得它们。 让我们开始吧。 其他阅读&#xff1a;如果您不熟悉Spring Data JPA&#xff0c;则应该阅读以下博客文章&…

元素属性的添加删除(原生js)

添加属性 odiv.setAttribute("title","hello div!");odiv.setAttribute("class","boxClass");odiv.setAttribute("hello","divTag");//自定义属性设(hello"divTag") 获取属性 var vodiv.getAttribute(&…

framelayout

编写的mail.xml文件: <?xml version"1.0" encoding"utf-8"?><FrameLayout xmlns:android"http://schemas.android.com/apk/res/android" android:id"id/frame" android:layout_width"fill_parent" android:layou…

Git 使用的问题总结

1、git stash pop 显示 xxx already exists, no checkout 当我们先使用 git stash save -u 保存信息说明 来储藏更改&#xff0c;然后拉取代码 git pull&#xff0c;如果你的本地修改有新建文件&#xff0c;远程也有新建文件&#xff0c;并且两者同名&#xff0c;此时应用储藏 …

在OpenShift上托管的WildFly实例上进行Arquillian测试

技术提示&#xff03;54解释了如何为现有Java EE项目启用Arquillian。 在该技巧中&#xff0c;测试是针对本地安装的WildFly服务器运行的。 如果此WildFly实例在OpenShift上运行&#xff0c;那么同一个适配器也可以工作吗&#xff1f; 没有&#xff01; 因为与xlocalhost相比&…

js基础---数组方法

数组数据的排序及去重   sort无形参的排序方式 arr1[2,12,3,15];var aarr1.sort();console.log(arr1);console.log(a);//排序会改变原本数组是顺序&#xff0c;是依据首个字符的大小开始排名sort有形参的排序方式方法1arr2[2,12,3,15];var barr2.sort(function(n1,n2){if(n1&…

扩展Asterisk1.8.7的CLI接口

我之前有一篇文章&#xff08;http://www.cnblogs.com/MikeZhang/archive/2012/04/14/asteriskCLIAppTest20120414.html&#xff09;介绍过如何扩展asterisk的cli接口&#xff0c;本篇是它的继续&#xff0c;总结下&#xff0c;也方便我以后查阅。 大部分情况下&#xff0c;配置…