JS全角與半角轉(zhuǎn)化實(shí)例(分享)
最近在做PC端網(wǎng)站的頁面的一個(gè)表單校驗(yàn),需要把全角輸入轉(zhuǎn)化成半角符號(hào)。之前沒有了解過這些編碼的知識(shí),還是得Google一下查查資料,故簡(jiǎn)單總結(jié)一下。
什么是全角、半角
傳統(tǒng)上,英語或拉丁字母語言使用的電腦系統(tǒng),每一個(gè)字母或符號(hào),都是使用一字節(jié)的空間(一字節(jié)由8比特組成,共256個(gè)編碼空間)來儲(chǔ)存;而漢語、日語及韓語文字,由于數(shù)量大大超過256個(gè),故慣常使用兩字節(jié)來儲(chǔ)存一個(gè)字符。在使用等寬字體(如DOS、部分文字編輯器等)的環(huán)境下,中日韓文字此時(shí)占據(jù)兩倍于西文字符的顯示寬度。所以,中、日、韓等文字稱為全角字符,相比起來,拉丁字母或數(shù)字就稱為半角字符。有時(shí)為了使字體看起來齊整,英文字母、數(shù)字及其他符號(hào)也由原來只占一個(gè)字空間,改為占用兩個(gè)字的空間顯示、使用兩個(gè)字節(jié)儲(chǔ)存的格式。(維基百科)
轉(zhuǎn)化原理
全角空格unicode編碼為12288,半角空格為32
其他字符半角(33-126)與全角(65281-65374)的unicode編碼對(duì)應(yīng)關(guān)系是:均相差65248
全角轉(zhuǎn)半角
function ToCDB(str) { var tmp = ""; for (var i = 0; i < str.length; i++) { if (str.charCodeAt(i) > 65248 && str.charCodeAt(i) < 65375) { tmp += String.fromCharCode(str.charCodeAt(i) - 65248); } else { tmp += String.fromCharCode(str.charCodeAt(i)); } } return tmp }
半角轉(zhuǎn)全角
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全角與半角轉(zhuǎn)化實(shí)例(分享)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript仿小米官網(wǎng)注冊(cè)登錄功能的實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了如何通過JavaScript實(shí)現(xiàn)仿小米官網(wǎng)登錄注冊(cè)完整功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11JavaScript iframe數(shù)據(jù)共享接口實(shí)現(xiàn)方法
在iframe與父窗口或者與子窗口傳遞數(shù)據(jù)是一個(gè)麻煩的事情,如果我們能夠?qū)懸粋€(gè)一勞永逸的接口那就再方便不過了,下面就來簡(jiǎn)答介紹一下如何實(shí)現(xiàn)此功能,對(duì)js iframe相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-01-01js根據(jù)手機(jī)客戶端瀏覽器類型,判斷跳轉(zhuǎn)官網(wǎng)/手機(jī)網(wǎng)站多個(gè)實(shí)例代碼
這篇文章主要介紹了js根據(jù)手機(jī)客戶端瀏覽器類型,判斷跳轉(zhuǎn)官網(wǎng)/手機(jī)網(wǎng)站多個(gè)實(shí)例代碼,需要的朋友可以參考下2016-04-04Javascript 函數(shù)parseInt()轉(zhuǎn)換時(shí)出現(xiàn)bug問題
天測(cè)試的測(cè)出來的。parseInt(1.13*100),實(shí)際返回值是112,下面有個(gè)示例,大家可以看看下2014-05-05JavaScript面試之如何實(shí)現(xiàn)數(shù)組拍平(扁平化)方法
數(shù)組扁平化是指將一個(gè)多維數(shù)組變?yōu)橐痪S數(shù)組,下面這篇文章主要給大家介紹了關(guān)于JavaScript面試之如何實(shí)現(xiàn)數(shù)組拍平(扁平化)方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-11-11JS實(shí)現(xiàn)計(jì)算小于非負(fù)數(shù)n的素?cái)?shù)的數(shù)量算法示例
這篇文章主要介紹了JS實(shí)現(xiàn)計(jì)算小于非負(fù)數(shù)n的素?cái)?shù)的數(shù)量算法,可實(shí)現(xiàn)針對(duì)一定范圍內(nèi)素?cái)?shù)個(gè)數(shù)的統(tǒng)計(jì)功能,涉及javascript數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2019-02-02