字符串中全角半角之间的转换
生活随笔
收集整理的這篇文章主要介紹了
字符串中全角半角之间的转换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前幾天,在做表單驗證的時候,發現用戶在輸入表單內容的時候,正常情況下都是半角輸入,但是也有可能是全角輸入,所以就牽扯到全角輸入內容的驗證,這里便提供全角和半角之間的轉換函數,與大家分享一下:
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
總結
以上是生活随笔為你收集整理的字符串中全角半角之间的转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue中通过js控制页面样式方法
- 下一篇: word-break属性和css换行显示