js对全角与半角的验证,相互转化以及介绍

1.什么是全角和半角?

全角:是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置。全角占两个字节。

汉字字符和规定了全角的英文字符及国标GB2312-80中的图形符号和特殊字符都是全角字符。在全角中,字母和数字等与汉字一样占据着等宽的位置。

半角:是指一个字符占用一个标准的字符位置。半角占一个字节。

半角就是 ASCII 方式的字符,在没有汉字输入法起作用的时候,输入的字母、数字和字符都是半角的。

每个半角字符只占用一字节的空间(一字节有8位,共256个编码空间)。汉语、日语、及朝鲜文等象形字语言的字库量远大于256个编码空间,所以改用两个字节来储存。同时,由于中日韩等象形文字的书写习惯,如果统一使用全角字符的话,排列起来也显得整齐。

为了排列整齐,英文和其它拉丁文的字符和标点也提供了全角格式。

2.全角和半角的区别

全角和半角主要是针对标点符号来说的,全角标点占两个字节,半角占一个字节。不管是半角还是全角,汉字都要占两个字节。

3.js判断输入的文字是全角还是半角?

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

4.js对全角与半角的相互转化

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

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

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

半角转化为全角

function ToDBC(txtstring) {
    var tmp = "";
    for(var i=0;i<txtstring.length;i++{
        if(txtstring.charCodeAt(i)==32){
            tmp= tmp+ String.fromCharCode(12288);
        }
        if(txtstring.charCodeAt(i)<127){
            tmp=tmp+String.fromCharCode(txtstring.charCodeAt(i)+65248);
        }
    }
    return tmp;
}

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

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

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

想详细的了解charCodeAt() 方法与fromCharCode()方法,可以点击《JavaScript charCodeAt() 方法》与《JavaScript fromCharCode() 方法》。

全角转换为半角

function ToCDB(str) {
    var tmp = "";
    for(var i=0;i<str.length;i++){
        if (str.charCodeAt(i) == 12288){
            tmp += String.fromCharCode(str.charCodeAt(i)-12256);
            continue;
        }
        if(str.charCodeAt(i) > 65280 && str.charCodeAt(i) < 65375){
            tmp += String.fromCharCode(str.charCodeAt(i)-65248);
        }
        else{
            tmp += String.fromCharCode(str.charCodeAt(i));
        }
    }
    return tmp
} 
时间: 2024-10-13 12:07:20

js对全角与半角的验证,相互转化以及介绍的相关文章

JS如何判断文字是全角还是半角(转载)

转载自:http://www.php.cn/js-tutorial-362638.html 全角:是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置.全角占两个字节.半角:是指一个字符占用一个标准的字符位置.半角占一个字节.接下来通过本文给大家介绍JS验证全角与半角及相互转化的知识,需要的朋友参考下吧 1.什么是全角和半角? 全角:是一种电脑字符,是指一个全角字符占用两个标准字符(或两个半角字符)的位置.全角占两个字节. 汉字字符和规定了全角的英文字符及国标GB2312-8

js 全角与半角互转

///全角空格为12288,半角空格为32    ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248    //半角转换为全角函数    function ToDBC(txtstring) {        var tmp = "";        for (var i = 0; i < txtstring.length; i++) {            if (txtstring.charCodeAt(i) == 32) {  

java 全角、半角字符串转换

转自:http://www.cnblogs.com/modou/articles/2679815.html     加入了空字符串的验证 半角转全角的方法: /** * @Title: ToSBC * @Description: 半角转全角 * @param input String. * @return 全角字符串. * @throws */ public static String ToSBC(String input) { if(!("".equals(input)||input

MySQL 全角转换为半角

?序言:       用户注册时候,录入了全角手机号码,所以导致短信系统根据手机字段发送短信失败,现在问题来了,如何把全角手机号码变成半角手机号码? 1,手机号码全角转换成半角先查询出来全角半角都存在的手机号码的数据SELECT a.username ,COUNT(1) AS numFROM(SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(uu.user_name,'0'

SQL转换全角和半角函数

SQL转换全角和半角函数 CREATE FUNCTION f_Convert( @str NVARCHAR(4000), --要转换的字符串 @flag bit --转换标志,0转换成半角,1转换成全角 )RETURNS nvarchar(4000) AS BEGIN DECLARE @pat nvarchar(8),@step int,@i int,@spc int IF @flag=0 SELECT @pat=N'%[!--]%',@step=-65248, @str=REPLACE(@st

详解全角和半角的转换

最近在项目中遇到一个问题,客户上传的文件无法下载下来,经过定位发现原来客户上传的文件名中包含很多全角字符导致无法解析,找不到对应的文件,其实文件是真实存在的,只是用的上传下载组件不支持全角字符的文件名,从而导致文件找到不到,无法下载. 所以本人就对全角和半角进行了一些分析和总结以及它们之间用java代码是如何进行转换的经验同各位园友进行分享,希望大家共同学习,共同进步,不足之处,请大家不吝指出. 好了,进入正题......... 全角和半角简介 全角是一种电脑字符,且每个全角字符占用两个标准字符

C#全角和半角转换

在计算机屏幕上,一个汉字要占两个英文字符的位置,人们把一个英文字符所占的位置称为"半角",相对地把一个汉字所占的位置称为"全角".在汉字输入时,系统提供"半角"和"全角"两种不同的输入状态,但是对于英文字母.符号和数字这些通用字符就不同于汉字,在半角状态它们被作为英文字符处理:而在全角状态,它们又可作为中文字符处理.半角和全角切换方法:单击输入法工具条上的 按钮或按键盘上的Shift+Space键来切换. (1)全角--指一个

全角转半角-半角转全角

package com.sogou.html; public class FullHalfReverse { /** * 半角转全角 */ public static String ToSBC(String input) { char[] c = input.toCharArray(); int length=c.length; for (int i = 0; i < length; i++) { if (c[i] == ' ') { c[i] = '\u3000'; } else if (c[

全角与半角的转化

1.全角与半角的区别 汉字的特点使我们碰到了两个基本且又非常重要的概念,即全角与半角.形象的说,在使用英文输入法时,电脑屏幕上,一个英文字符(如a)所占的位置,人们称其为半角,而一个汉字所占的位置则等于两个英文字符,故称其为全角. 英文输入法下,无论是输入字母.符号还是数字,始终都只占一个英文字符的位置,即半角.但在中文输入法下,则会有全角半角两种选择,对中文字符来说,这两种选择对其没有影响,它始终都要占两个英文字符的位置,但对此状态下输入的符号.数字以及英文字母来说,就显得很重要,如以下所示: