導航:首頁 > 編程語言 > js獲取拼音首字母

js獲取拼音首字母

發布時間:2023-06-04 10:48:00

javascript漢字獲取拼音首字元問題

那個是VBscript的函數,js裡面沒有獲取GB2312編碼的函數,需要自己整一個。
GB2312裡面的7k多個漢字是按照拼音排序的,後來擴充的漢字並沒有按照拼音排序,(為了不打亂已經排好的GB2312編碼表),所以要准確獲取拼音最好還是用詞庫來比對。
這里有比較好的例子:

http://www.cssrain.cn/demo/pinyin/lukin/Pinyin.html

自己改寫一下就可以。
如果要搞好那個函數,需要把編碼轉換為ansi編碼,網上有很多這里函數。
復雜的漢字確實不能找到正確的拼音,只適用簡單的漢字GB2312里的。
改寫如下:
先去http://www.cftea.com/c/2009/04/3T7WXDO9S9VFBXH3.asp 里弄兩個函數來:字數超過限制就不貼這兩個函數了。自己去下載一下:
function UnicodeChr();
function AnsicodeChr();

var s='拼音轉換';
alert( getPY_str(s) );

function getPY_str(str){
var py_str='';
for ( var i=0; i < str.length ; i++)
{
py_str +=getPY(str.substr(i,1));
}
return py_str;
}
function ansi(c){
return UnicodeToAnsi(c.charCodeAt(0));
}
function UnicodeToAnsi(chrCode)
{
var chrHex=chrCode.toString(16);
chrHex="000"+chrHex.toUpperCase();
chrHex=chrHex.substr(chrHex.length-4);
var i=UnicodeChr().indexOf(chrHex);
if(i!=-1)
{
chrHex=AnsicodeChr().substr(i,4);
}
return parseInt(chrHex,16);
}

function getPY(ch)
{
if(ch !='') {
var code = ansi(ch);
var py = '';
if(code>=45217 && code<=45252) {
py = "A"
} else if(code>=45253 && code<=45760) {
py = "B"
} else if(code>=45761 && code<=46317) {
py = "C"
} else if(code>=46318 && code<=46825) {
py = "D"
} else if(code>=46826 && code<=47009) {
py = "E"
} else if(code>=47010 && code<=47296) {
py = "F"
} else if((code>=47297 && code<=47613) || (code == 63193)) {
py = "G"
} else if(code>=47614 && code<=48118) {
py = "H"
} else if(code>=48119 && code<=49061) {
py = "J"
} else if(code>=49062 && code<=49323) {
py = "K"
} else if(code>=49324 && code<=49895) {
py = "L"
} else if(code>=49896 && code<=50370) {
py = "M"
} else if(code>=50371 && code<=50613) {
py = "N"
} else if(code>=50614 && code<=50621) {
py = "O"
} else if(code>=50622 && code<=50905) {
py = "P"
} else if(code>=50906 && code<=51386) {
py = "Q"
} else if(code>=51387 && code<=51445) {
py = "R"
} else if(code>=51446 && code<=52217) {
py = "S"
} else if(code>=52218 && code<=52697) {
py = "T"
} else if(code>=52698 && code<=52979) {
py = "W"
} else if(code>=52980 && code<=53688) {
py = "X"
} else if(code>=53689 && code<=54480) {
py = "Y"
} else if(code>=54481 && code<=62289) {
py = "Z"
} else {
py =ch;
}
return py;
}else{
return '';
}
}

⑵ javascript中文按照拼音首字母排序,如何實現

中文拼音排序一直都是很有趣的一個問題。推薦使用這個函數 String.prototype.localeCompare(),鏈接 MDN。首先用 localeCompare 試下拼音排序

var array = ['武漢', '北京', '上海', '天津'];

array.sort(

function compareFunction(param1, param2) {

return param1.localeCompare(param2);

}

);

array // ["北京", "上海", "天津", "武漢"]

然後根據 26 個英文字母分組排序,函數如下,

function pySegSort(arr) {

if(!String.prototype.localeCompare)

return null;

var letters = "*abcdefghjklmnopqrstwxyz".split('');

var zh = "阿八嚓噠妸發旮哈譏咔垃痳拏噢妑七呥扨它穵夕丫帀".split('');

var segs = [];

var curr;

letters.forEach(function(item,i){

curr = {letter: item, data:[]};

arr.forEach(function(item2){

if((!zh[i-1] || zh[i-1].localeCompare(item2) <= 0) && item2.localeCompare(zh[i]) == -1) {

curr.data.push(item2);

}

});

if(curr.data.length) {

segs.push(curr);

curr.data.sort(function(a,b){

return a.localeCompare(b);

});

}

});

return segs;

}

測試:

pySegSort(["我","不","懂","愛","啊","按","已","呀","選","縣"])

結果:

[{"letter":"a","data":["啊","愛","按"]},{"letter":"b","data":["不"]},{"letter":"d","data":["懂"]},{"letter":"w","data":["我"]},{"letter":"x","data":["縣","選"]},{"letter":"y","data":["呀","已"]}]

⑶ js中如何實現在姓名拼音的首字母前加空字元

判斷字元串里除首字母外,每個大寫字母的位置,這樣找到位置後,再前面加上空格,組合成新字元串即可,思路就是這樣。
判斷大小寫字母的方法,網路就行。

⑷ 在js中如何實現自動獲取漢字的五筆首字母

在js中如何實現自復動獲取漢字的制五筆首字母?
你的意思是不是,在頁面如果打「z」,轉換成漢字對應的一些字,然後再根據這些字,來查資料庫,取的相關的數據?
這樣麻煩。
一般都是在存數據的時候,就已經轉換好了對應的拼音。
比如要存:張**
,在存入資料庫的時生成一個對應的拼音:zhang**
,把這個也一起存了,漢字存漢字欄位,拼音存拼音欄位。
查找時輸入z,就直接在拼音欄位里查需要的數據。
如果表允許再增加欄位,還是加個拼音的欄位,查找時候方便,快捷。
網上找個漢字轉換拼音的類,把數據處理一下,存進拼音欄位里。
這個是漢字轉拼音參考:

⑸ 用Javascript如何實現在輸入框中輸入漢字拼音的首字母動態過濾相應的漢字

把漢字先轉成拼音(網路一下就有代碼)

再用ajax來更新

⑹ js怎麼用正則表達式驗證首字母大寫

//a變數你就自己獲取,我這兒為你方便你理解我就直接寫上了
vara='Ajjfioewjfoieji';
if(!內(/^[A-Z][A-z0-9]*$/).test(a)){
alert('請首字母容大寫');
}

⑺ js中如何根據漢字生成拼音首字母

//參數,中文字元串

//返回值:拼音首字母串數組
functionmakePy(str){
if(typeof(str)!="string")
thrownewError(-1,"函數makePy需要字元串類型參數!");
vararrResult=newArray();//保存中間結果的數組
for(vari=0,len=str.length;i<len;i++){
//獲得unicode碼
varch=str.charAt(i);
//檢查該unicode碼是否在處理范圍之內,在則返回該碼對映漢字的拼音首字母,不在則調用其它函數處理
arrResult.push(checkCh(ch));
}
//處理arrResult,返回所有可能的拼音首字母串數組
returnmkRslt(arrResult);
}
functioncheckCh(ch){
varuni=ch.charCodeAt(0);
//如果不在漢字處理范圍之內,返回原字元,也可以調用自己的處理函數
if(uni>40869||uni<19968)
returnch;//dealWithOthers(ch);
//檢查是否是多音字,是按多音字處理,不是就直接在strChineseFirstPY字元串中找對應的首字母
return(oMultiDiff[uni]?oMultiDiff[uni]:(strChineseFirstPY.charAt(uni-19968)));
}
functionmkRslt(arr){
vararrRslt=[""];
for(vari=0,len=arr.length;i<len;i++){
varstr=arr[i];
varstrlen=str.length;
if(strlen==1){
for(vark=0;k<arrRslt.length;k++){
arrRslt[k]+=str;
}
}else{
vartmpArr=arrRslt.slice(0);
arrRslt=[];
for(k=0;k<strlen;k++){
//復制一個相同的arrRslt
vartmp=tmpArr.slice(0);
//把當前字元str[k]添加到每個元素末尾
for(varj=0;j<tmp.length;j++){
tmp[j]+=str.charAt(k);
}
//把復制並修改後的數組連接到arrRslt上
arrRslt=arrRslt.concat(tmp);
}
}
}
returnarrRslt;
}
//兩端去空格函數
String.prototype.trim=function(){returnthis.replace(/(^s*)|(s*$)/g,"");}

//查看拼音首字母縮寫
functionquery(){
varstr=document.getElementById("txtChinese").value.trim();
if(str=="")return;
vararrRslt=makePy(str);
alert(arrRslt);

⑻ js檢測欄位中首個字元是否為字母

||

直接取首字母判斷下它的ascii碼就可以了。取首字母內ascii碼可以用string.charCodeAt(0)。A-Z的ascii碼:容65-90,a-z的ascii碼:97-122。以下供參考:

  1. varsSrc="w33333";

  2. varsASC=sSrc.charCodeAt(0);

  3. if((sASC>=65&&sASC<=90)||(sASC>=97&&sASC<=122)){//代碼}

⑼ jquery或javascipte實現標簽內文字按拼音首字母排序

jq:

varwrap=$('div');

varhtml=
wrap.find('a')
.map(function(){//獲取文字
return$.trim($(this).text())
})
.toArray()//轉換jq為數組
.sort(function(a,b){
returna.localeCompare(b)//按照順序排序
})
.map(function(txt){//拼接html
return'<a>'+txt+'</a>';
})
.join('');

wrap.html(html);//輸出


js:
functiontoArray(nodes){
return[].slice.call(nodes,0);
}

varwrap=document.querySelector('div');
varlinks=wrap.querySelectorAll('a');
varhtml=
toArray(links)
.map(function(el,i){//讀取文字
return(el.innerText||el.textContent).trim();
})
.sort(function(a,b){
returna.localeCompare(b)//按照順序排序
})
.map(function(txt){//組合html
return'<a>'+txt+'</a>';
})
.join('');

wrap.innerHtml=html;//輸出

閱讀全文

與js獲取拼音首字母相關的資料

熱點內容
word使用教程下載 瀏覽:295
電腦文件平鋪圖片默認大小 瀏覽:115
文件查看設置信息失敗 瀏覽:668
編程如何編出烏鴉喝水的課文 瀏覽:20
國家反詐app報案助手怎麼使用 瀏覽:439
秘密文件丟失多少天 瀏覽:237
js中csstext 瀏覽:382
目標文件名過長復制 瀏覽:892
樂動力計步器老版本 瀏覽:933
壓縮文件鏈接怎麼編輯 瀏覽:808
如何鎖定PDF文件里的圖章 瀏覽:89
資料庫超時是什麼 瀏覽:649
文件怎麼改整列內容 瀏覽:764
360壓縮文件發郵件空白 瀏覽:813
上哪裡查自己大數據 瀏覽:907
編程語言怎麼學車 瀏覽:189
編程該怎麼學才能先找工作 瀏覽:524
文件刻制光碟多少錢 瀏覽:861
校園網的網路組成結構 瀏覽:862
u盤系統復制文件過大 瀏覽:843

友情鏈接