JS驗(yàn)證全角與半角及相互轉(zhuǎn)化的介紹
1.什么是全角和半角?
全角:是一種電腦字符,是指一個(gè)全角字符占用兩個(gè)標(biāo)準(zhǔn)字符(或兩個(gè)半角字符)的位置。全角占兩個(gè)字節(jié)。
漢字字符和規(guī)定了全角的英文字符及國(guó)標(biāo)GB2312-80中的圖形符號(hào)和特殊字符都是全角字符。在全角中,字母和數(shù)字等與漢字一樣占據(jù)著等寬的位置。
半角:是指一個(gè)字符占用一個(gè)標(biāo)準(zhǔn)的字符位置。半角占一個(gè)字節(jié)。
半角就是 ASCII 方式的字符,在沒有漢字輸入法起作用的時(shí)候,輸入的字母、數(shù)字和字符都是半角的。
每個(gè)半角字符只占用一字節(jié)的空間(一字節(jié)有8位,共256個(gè)編碼空間)。漢語(yǔ)、日語(yǔ)、及朝鮮文等象形字語(yǔ)言的字庫(kù)量遠(yuǎn)大于256個(gè)編碼空間,所以改用兩個(gè)字節(jié)來儲(chǔ)存。同時(shí),由于中日韓等象形文字的書寫習(xí)慣,如果統(tǒng)一使用全角字符的話,排列起來也顯得整齊。
為了排列整齊,英文和其它拉丁文的字符和標(biāo)點(diǎn)也提供了全角格式。
2.全角和半角的區(qū)別
全角和半角主要是針對(duì)標(biāo)點(diǎn)符號(hào)來說的,全角標(biāo)點(diǎn)占兩個(gè)字節(jié),半角占一個(gè)字節(jié)。不管是半角還是全角,漢字都要占兩個(gè)字節(jié)。
3.js判斷輸入的文字是全角還是半角?
str="中文;;a" alert(str.match(/[\u0000-\u00ff]/g)) //半角 alert(str.match(/[\u4e00-\u9fa5]/g)) //中文 alert(str.match(/[\uff00-\uffff]/g)) //全角
4.js對(duì)全角與半角的相互轉(zhuǎn)化
首先,先得明確以下信息:
a.全角空格為12288,半角空格為32
b.其他字符半角(33-126)與全角(65281-65374)的對(duì)應(yīng)關(guān)系是:均相差65248
半角轉(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的charCodeAt() 方法與fromCharCode() 方法。
charCodeAt() 方法可返回指定位置的字符的 Unicode 編碼。這個(gè)返回值是 0 - 65535 之間的整數(shù)。
fromCharCode() 可接受一個(gè)指定的 Unicode 值,然后返回一個(gè)字符串。
想詳細(xì)的了解charCodeAt() 方法與fromCharCode()方法,可以點(diǎn)擊《JavaScript charCodeAt() 方法》與《JavaScript fromCharCode() 方法》。
全角轉(zhuǎn)換為半角
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
}
以上所述是小編給大家介紹的JS驗(yàn)證全角與半角及相互轉(zhuǎn)化的知識(shí),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
js采用map取到id集合組并且實(shí)現(xiàn)點(diǎn)擊一行選中一行
本文為大家介紹下如何使用js采用map取到id集合組,并且點(diǎn)擊一行選中一行2013-12-12
Electron實(shí)現(xiàn)文件復(fù)制到剪切板的方案
這篇文章主要介紹了Electron實(shí)現(xiàn)文件復(fù)制到剪切板的解決方案,文中通過代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-11-11
根據(jù)經(jīng)緯度計(jì)算地球上兩點(diǎn)之間的距離js實(shí)現(xiàn)代碼
最近用到了根據(jù)經(jīng)緯度計(jì)算地球表面兩點(diǎn)間距離的公式,然后就用JS實(shí)現(xiàn)了一下,根據(jù)地球是一個(gè)光滑的球面以及并不是一個(gè)真正的圓球體,而是橢球延伸出兩種方法,感興趣的你可以參考下2013-03-03
JS前端實(shí)現(xiàn)留言板功能的方法總結(jié)
留言板的主要使用場(chǎng)景是為用戶提供一個(gè)在網(wǎng)站或應(yīng)用上留言的平臺(tái),本文主要為大家介紹了四個(gè)常見的前端實(shí)現(xiàn)留言板功能的方法,希望對(duì)大家有所幫助2023-11-11
js實(shí)現(xiàn)從中間開始往上下展開網(wǎng)頁(yè)窗口的方法
這篇文章主要介紹了js實(shí)現(xiàn)從中間開始往上下展開網(wǎng)頁(yè)窗口的方法,是非常實(shí)用的js窗口效果,需要的朋友可以參考下2015-03-03
js前端對(duì)于大量數(shù)據(jù)的展示方式及處理方法
這篇文章主要介紹了js前端對(duì)于大量數(shù)據(jù)的展示方式及處理方法,幫助大家更好的理解和使用js,感興趣的朋友可以了解下2020-12-12
JavaScript語(yǔ)法約定和程序調(diào)試原理解析
這篇文章主要介紹了JavaScript語(yǔ)法約定和程序調(diào)試原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11

