导航:首页 > 编程语言 > 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获取拼音首字母相关的资料

热点内容
彩视制作教程 浏览:766
圣墟在哪个App看免费 浏览:395
网络哪些不能玩 浏览:868
probe315使用教程 浏览:646
数字电位器程序 浏览:198
c代码整理 浏览:104
网络营销具有什么优势 浏览:378
右下角网络连接不显示宽带连接 浏览:940
ps修改tif文件 浏览:580
预防医学如何转行做大数据 浏览:234
pdf文件变蓝 浏览:309
怎么在pdf文件上面用k宝签名 浏览:213
如何知道表格里数据后面有空格 浏览:720
gee引擎更新系统找不到指定文件 浏览:802
贝壳网的数据删除了如何找回 浏览:509
华为荣耀6x怎么切换网络 浏览:418
手机里的pdf文件在哪放 浏览:889
java版贪吃蛇毕业论文 浏览:989
微信公共号邮箱 浏览:415
图片宽度代码 浏览:460

友情链接