JS基礎篇-- JS對全角與半角的驗證,相互轉化以及介紹

1.什麼是全角和半角?

全角:是一種電腦字符,是指一個全角字符佔用兩個標準字符(或兩個半角字符)的位置。全角佔兩個字節。編碼

漢字字符和規定了全角的英文字符及國標GB2312-80中的圖形符號和特殊字符都是全角字符。在全角中,字母和數字等與漢字同樣佔據着等寬的位置。code

半角:是指一個字符佔用一個標準的字符位置。半角佔一個字節。ip

半角就是 ASCII 方式的字符,在沒有漢字輸入法起做用的時候,輸入的字母、數字和字符都是半角的。字符串

每一個半角字符只佔用一字節的空間(一字節有8位,共256個編碼空間)。漢語、日語、及朝鮮文等象形字語言的字庫量遠大於256個編碼空間,因此改用兩個字節來儲存。同時,因爲中日韓等象形文字的書寫習慣,若是統一使用全角字符的話,排列起來也顯得整齊。get

爲了排列整齊,英文和其它拉丁文的字符和標點也提供了全角格式。string

2.全角和半角的區別

全角和半角主要是針對標點符號來講的,全角標點佔兩個字節,半角佔一個字節。無論是半角仍是全角,漢字都要佔兩個字節。io

3.js判斷輸入的文字是全角仍是半角?

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

4.js對全角與半角的相互轉化

首先,先得明確如下信息:function

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 
}
相關文章
相關標籤/搜索