资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

javascript首拼,js怎么拼

javascript汉字获取拼音首字符问题?

那个是VBscript的函数,js里面没有获取GB2312编码的函数,需要自己整一个。

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的襄汾网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

GB2312里面的7k多个汉字是按照拼音排序的,后来扩充的汉字并没有按照拼音排序,(为了不打乱已经排好的GB2312编码表),所以要准确获取拼音最好还是用词库来比对。

这里有比较好的例子:

自己改写一下就可以。

如果要搞好那个函数,需要把编码转换为ansi编码,网上有很多这里函数。

复杂的汉字确实不能找到正确的拼音,只适用简单的汉字GB2312里的。

改写如下:

先去 里弄两个函数来:字数超过限制就不贴这两个函数了。自己去下载一下:

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 中拼接字符串,如何把一段代码拼接起来

你好,javascript中字符串的拼接使用的是+号连接操作符,另外操作字符串的方法有

字符串其他的调用方法:

s.charAt(0); //第一个字符:“H”

s.charAt(s.length-1); //最后一个字符串“d”

s.substring(1,4); //第2~4个字符串注意不是第2~5个字符串 “ell”;

s.slice(1,4); // 同上 “ell”;

s.replace("H","h"); //“h”替换“H”,全文字符替换,

s.toUpperCase(); //全文大写

s.slice(-3); //最后三个字符“rld”;

s.indexOf("l"); //字符l首次出现的位置; “2”

s.lastIndexOf("l"); //字符l最后出现的位置; “10”

s.indexOf("l",3); //在位置33及之后首次出现字符串了的位置 “3”

s.split(", "); //[“hello”,“world”]分割成子串

合理使用这些方法可以提高操作效率

如何用javascript编程取输入汉字的首字母,如“中华人民共和国”成"zhrmghg"

我先做一个显示完整拼音的脚本如下(把下面的内容保存为一个html文件用IE打开即可显示zhong hua ren min gong he guo):

script type="text/vbscript"

function vbChr(c)

vbChr = chr(c)

end function

function vbAsc(n)

vbAsc = asc(n)

end function

/script

script language=javascript

var py=new Array(20319,

20283,

19775,

19218,

18710,

18526,

18239,

17922,

17922,

17417,

16474,

16212,

15640,

15165,

14922,

14914,

14630,

14149,

14090,

13318,

13318,

13318,

12838,

12556,

11847,

11055,0);

function getPinYin(index){

var i;

if(index==0x1534) return 'y';

if(index0x4F5F||index0x2807) return '';

i=0;while(py[i]=index)i++;

if (i==9) i--;

if(i==21 || i==22) i=20;

return vbChr(96+i);

}

function pinyin(s){

var i,s2='';

for (i=0;is.length;i++)s2+=(getPinYin(0-vbAsc(s.charAt(i))));

return s2;

}

document.writeln(pinyin('中华人民共和国'));

/script

我马上要到我的空间发表一篇显示完整拼音的文章,请多指教。

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":["呀","已"]}]

var arr = ["张三","李四","王五","阿三"]; 

document.write(arr+"");

arr.sort(function(a,b){

return a.localeCompare(b);

});

document.write(arr);

定义和用法:

用本地特定的顺序来比较两个字符串。

语法:

stringObject.localeCompare(target)

参数描述:

target    要以本地特定的顺序与 stringObject 进行比较的字符串。  

返回值:

说明比较结果的数字。如果 stringObject 小于 target,则 localeCompare() 返回小于 0 的数。如果 stringObject 大于 target,则该方法返回大于 0 的数。如果两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。

说明:

把 和 运算符应用到字符串时,它们只用字符的 Unicode 编码比较字符串,而不考虑当地的排序规则。以这种方法生成的顺序不一定是正确的。例如,在西班牙语中,其中字符 “ch” 通常作为出现在字母 “c” 和 “d” 之间的字符来排序。

localeCompare() 方法提供的比较字符串的方法,考虑了默认的本地排序规则。ECMAscript 标准并没有规定如何进行本地特定的比较操作,它只规定该函数采用底层操作系统提供的排序规则。

参考资料

百度知道.百度知道[引用时间2018-1-5]

我看书JavaScript将每个单词首字母变大写

+号的左边是取出arr[i]的第一个字符并转换为大写,右边是取出arr[i]除第一个字符之外的剩余部分,然后用+号拼接起来,最后再赋值给arr[i]。没啥问题啊!

js中如何根据汉字生成拼音首字母

//参数,中文字符串

//返回值:拼音首字母串数组  

function makePy(str){  

if(typeof(str) != "string")  

throw new Error(-1,"函数makePy需要字符串类型参数!");  

var arrResult = new Array(); //保存中间结果的数组  

for(var i=0,len=str.length;ilen;i++){  

//获得unicode码  

var ch = str.charAt(i);  

//检查该unicode码是否在处理范围之内,在则返回该码对映汉字的拼音首字母,不在则调用其它函数处理  

arrResult.push(checkCh(ch));  

}  

//处理arrResult,返回所有可能的拼音首字母串数组  

return mkRslt(arrResult);  

}  

function checkCh(ch){  

var uni = ch.charCodeAt(0);  

//如果不在汉字处理范围之内,返回原字符,也可以调用自己的处理函数  

if(uni  40869 || uni  19968)  

return ch; //dealWithOthers(ch);  

//检查是否是多音字,是按多音字处理,不是就直接在strChineseFirstPY字符串中找对应的首字母  

return (oMultiDiff[uni]?oMultiDiff[uni]:(strChineseFirstPY.charAt(uni-19968)));  

}  

function mkRslt(arr){  

var arrRslt = [""];  

for(var i=0,len=arr.length;ilen;i++){  

var str = arr[i];  

var strlen = str.length;  

if(strlen == 1){  

for(var k=0;karrRslt.length;k++){  

arrRslt[k] += str;  

}  

}else{  

var tmpArr = arrRslt.slice(0);  

arrRslt = [];  

for(k=0;kstrlen;k++){  

//复制一个相同的arrRslt  

var tmp = tmpArr.slice(0);  

//把当前字符str[k]添加到每个元素末尾  

for(var j=0;jtmp.length;j++){  

tmp[j] += str.charAt(k);  

}  

//把复制并修改后的数组连接到arrRslt上  

arrRslt = arrRslt.concat(tmp);  

}  

}  

}  

return arrRslt;  

}  

//两端去空格函数  

String.prototype.trim = function() {    return this.replace(/(^\s*)|(\s*$)/g,""); }  

//查看拼音首字母缩写  

function query(){  

var str = document.getElementById("txtChinese").value.trim();  

if(str == "") return;  

var arrRslt = makePy(str);  

alert(arrRslt);


当前题目:javascript首拼,js怎么拼
网站URL:http://cdkjz.cn/article/dscgsog.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220