根据汉字,获取拼音首字母(转)

  1. 借鉴一:https://zhidao.baidu.com/question/1638183070742906620.html
  2. //返回值:拼音首字母串数组  
  3. function makePy(str){  
  4. if(typeof(str) != "string")  
  5. throw new Error(-1,"函数makePy需要字符串类型参数!");  
  6. var arrResult = new Array(); //保存中间结果的数组  
  7. for(var i=0,len=str.length;i<len;i++){  
  8. //获得unicode码  
  9. var ch = str.charAt(i);  
  10. //检查该unicode码是否在处理范围之内,在则返回该码对映汉字的拼音首字母,不在则调用其它函数处理  
  11. arrResult.push(checkCh(ch));  
  12. }  
  13. //处理arrResult,返回所有可能的拼音首字母串数组  
  14. return mkRslt(arrResult);  
  15. }  
  16. function checkCh(ch){  
  17. var uni = ch.charCodeAt(0);  
  18. //如果不在汉字处理范围之内,返回原字符,也可以调用自己的处理函数  
  19. if(uni > 40869 || uni < 19968)  
  20. return ch; //dealWithOthers(ch);  
  21. //检查是否是多音字,是按多音字处理,不是就直接在strChineseFirstPY字符串中找对应的首字母  
  22. return (oMultiDiff[uni]?oMultiDiff[uni]:(strChineseFirstPY.charAt(uni-19968)));  
  23. }  
  24. function mkRslt(arr){  
  25. var arrRslt = [""];  
  26. for(var i=0,len=arr.length;i<len;i++){  
  27. var str = arr[i];  
  28. var strlen = str.length;  
  29. if(strlen == 1){  
  30. for(var k=0;k<arrRslt.length;k++){  
  31. arrRslt[k] += str;  
  32. }  
  33. }else{  
  34. var tmpArr = arrRslt.slice(0);  
  35. arrRslt = [];  
  36. for(k=0;k<strlen;k++){  
  37. //复制一个相同的arrRslt  
  38. var tmp = tmpArr.slice(0);  
  39. //把当前字符str[k]添加到每个元素末尾  
  40. for(var j=0;j<tmp.length;j++){  
  41. tmp[j] += str.charAt(k);  
  42. }  
  43. //把复制并修改后的数组连接到arrRslt上  
  44. arrRslt = arrRslt.concat(tmp);  
  45. }  
  46. }  
  47. }  
  48. return arrRslt;  
  49. }  
  50. //两端去空格函数  
  51. String.prototype.trim = function() {    return this.replace(/(^\s*)|(\s*$)/g,""); }  
  52.    
  53. //查看拼音首字母缩写  
  54. function query(){  
  55.     var str = document.getElementById("txtChinese").value.trim();  
  56.     if(str == ""return;  
  57.     var arrRslt = makePy(str);  
  58.     alert(arrRslt);

借鉴二:https://blog.csdn.net/songylwq/article/details/6032310

  1. <form name=frm>  
  2. 汉字:<input type=text name=s SIZE=120 onchange="javascript:document.frm.p.value=pinyin(this.value);"><BR>  
  3. 拼音:<input type=text name=p SIZE=120 readonly>  
  4. </form> 

 

  1. <mce:script  language="vbscript"><!--  
  2. function vbChr(c)   
  3. vbChr = chr(c)   
  4. end function  
  5.   
  6. function vbAsc(n)   
  7. vbAsc = asc(n)   
  8. end function   
  9. // --></mce:script>  
  10.   
  11. <mce:script language=javascript><!--  
  12. var py1=new Array(20319,  
  13. 20317,  
  14. 20304,  
  15. 20295,  
  16. 20292,  
  17. 20283,  
  18. 20265,  
  19. 20257,  
  20. 20242,  
  21. 20230,  
  22. 20051,  
  23. 20036,  
  24. 20032,  
  25. 20026,  
  26. 20002,  
  27. 19990,  
  28. 19986,  
  29. 19982,  
  30. 19976,  
  31. 19805,  
  32. 19784,  
  33. 19775,  
  34. 19774,  
  35. 19763,  
  36. 19756,  
  37. 19751,  
  38. 19746,  
  39. 19741,  
  40. 19739,  
  41. 19728,  
  42. 19725,  
  43. 19715,  
  44. 19540,  
  45. 19531,  
  46. 19525,  
  47. 19515,  
  48. 19500,  
  49. 19484,  
  50. 19479,  
  51. 19467,  
  52. 19289,  
  53. 19288,  
  54. 19281,  
  55. 19275,  
  56. 19270,  
  57. 19263,  
  58. 19261,  
  59. 19249,  
  60. 19243,  
  61. 19242,  
  62. 19238,  
  63. 19235,  
  64. 19227,  
  65. 19224,  
  66. 19218,  
  67. 19212,  
  68. 19038,  
  69. 19023,  
  70. 19018,  
  71. 19006,  
  72. 19003,  
  73. 18996,  
  74. 18977,  
  75. 18961,  
  76. 18952,  
  77. 18783,  
  78. 18774,  
  79. 18773,  
  80. 18763,  
  81. 18756,  
  82. 18741,  
  83. 18735,  
  84. 18731,  
  85. 18722,  
  86. 18710,  
  87. 18697,  
  88. 18696,  
  89. 18526,  
  90. 18518,  
  91. 18501,  
  92. 18490,  
  93. 18478,  
  94. 18463,  
  95. 18448,  
  96. 18447,  
  97. 18446,  
  98. 18239,  
  99. 18237,  
  100. 18231,  
  101. 18220,  
  102. 18211,  
  103. 18201,  
  104. 18184,  
  105. 18183,  
  106. 18181,  
  107. 18012,  
  108. 17997,  
  109. 17988,  
  110. 17970,  
  111. 17964,  
  112. 17961,  
  113. 17950,  
  114. 17947,  
  115. 17931,  
  116. 17928,  
  117. 17922,  
  118. 17759,  
  119. 17752,  
  120. 17733,  
  121. 17730,  
  122. 17721,  
  123. 17703,  
  124. 17701,  
  125. 17697,  
  126. 17692,  
  127. 17683,  
  128. 17676,  
  129. 17496,  
  130. 17487,  
  131. 17482,  
  132. 17468,  
  133. 17454,  
  134. 17433,  
  135. 17427,  
  136. 17417,  
  137. 17202,  
  138. 17185,  
  139. 16983,  
  140. 16970,  
  141. 16942,  
  142. 16915,  
  143. 16733,  
  144. 16708,  
  145. 16706,  
  146. 16689,  
  147. 16664,  
  148. 16657,  
  149. 16647,  
  150. 16474,  
  151. 16470,  
  152. 16465,  
  153. 16459,  
  154. 16452,  
  155. 16448,  
  156. 16433,  
  157. 16429,  
  158. 16427,  
  159. 16423,  
  160. 16419,  
  161. 16412,  
  162. 16407,  
  163. 16403,  
  164. 16401,  
  165. 16393,  
  166. 16220,  
  167. 16216,  
  168. 16212,  
  169. 16205,  
  170. 16202,  
  171. 16187,  
  172. 16180,  
  173. 16171,  
  174. 16169,  
  175. 16158,  
  176. 16155,  
  177. 15959,  
  178. 15958,  
  179. 15944,  
  180. 15933,  
  181. 15920,  
  182. 15915,  
  183. 15903,  
  184. 15889,  
  185. 15878,  
  186. 15707,  
  187. 15701,  
  188. 15667,  
  189. 15661,  
  190. 15659,  
  191. 15652,  
  192. 15681,  
  193. 15640,  
  194. 15631,  
  195. 15625,  
  196. 15454,  
  197. 15448,  
  198. 15436,  
  199. 15435,  
  200. 15419,  
  201. 15416,  
  202. 15408,  
  203. 15394,  
  204. 15385,  
  205. 15377,  
  206. 15375,  
  207. 15369,  
  208. 15363,  
  209. 15362,  
  210. 15183,  
  211. 15180,  
  212. 15165,  
  213. 15158,  
  214. 15153,  
  215. 15150,  
  216. 15149,  
  217. 15144,  
  218. 15143,  
  219. 15141,  
  220. 15140,  
  221. 15139,  
  222. 15128,  
  223. 15121,  
  224. 15119,  
  225. 15117,  
  226. 15110,  
  227. 15109,  
  228. 14941,  
  229. 14937,  
  230. 14933,  
  231. 14929,  
  232. 14928,  
  233. 14926,  
  234. 14930,  
  235. 14922,  
  236. 14921,  
  237. 14914,  
  238. 14908,  
  239. 14902,  
  240. 14894,  
  241. 14889,  
  242. 14882,  
  243. 14873,  
  244. 14871,  
  245. 14857,  
  246. 14678,  
  247. 14674,  
  248. 14670,  
  249. 14668,  
  250. 14663,  
  251. 14654,  
  252. 14645,  
  253. 14630,  
  254. 14594,  
  255. 14429,  
  256. 14407,  
  257. 14399,  
  258. 14384,  
  259. 14379,  
  260. 14368,  
  261. 14355,  
  262. 14353,  
  263. 14345,  
  264. 14170,  
  265. 14159,  
  266. 14151,  
  267. 14149,  
  268. 14145,  
  269. 14140,  
  270. 14137,  
  271. 14135,  
  272. 14125,  
  273. 14123,  
  274. 14122,  
  275. 14112,  
  276. 14109,  
  277. 14099,  
  278. 14097,  
  279. 14094,  
  280. 14092,  
  281. 14090,  
  282. 14087,  
  283. 14083,  
  284. 13917,  
  285. 13914,  
  286. 13910,  
  287. 13907,  
  288. 13906,  
  289. 13905,  
  290. 13896,  
  291. 13894,  
  292. 13878,  
  293. 13870,  
  294. 13859,  
  295. 13847,  
  296. 13831,  
  297. 13658,  
  298. 13611,  
  299. 13601,  
  300. 13406,  
  301. 13404,  
  302. 13400,  
  303. 13398,  
  304. 13395,  
  305. 13391,  
  306. 13387,  
  307. 13383,  
  308. 13367,  
  309. 13359,  
  310. 13356,  
  311. 13343,  
  312. 13340,  
  313. 13329,  
  314. 13326,  
  315. 13318,  
  316. 13147,  
  317. 13138,  
  318. 13120,  
  319. 13107,  
  320. 13096,  
  321. 13095,  
  322. 13091,  
  323. 13076,  
  324. 13068,  
  325. 13063,  
  326. 13060,  
  327. 12888,  
  328. 12875,  
  329. 12871,  
  330. 12860,  
  331. 12858,  
  332. 12852,  
  333. 12849,  
  334. 12838,  
  335. 12831,  
  336. 12829,  
  337. 12812,  
  338. 12802,  
  339. 12607,  
  340. 12597,  
  341. 12594,  
  342. 12585,  
  343. 12556,  
  344. 12359,  
  345. 12346,  
  346. 12320,  
  347. 12300,  
  348. 12120,  
  349. 12099,  
  350. 12089,  
  351. 12074,  
  352. 12067,  
  353. 12058,  
  354. 12039,  
  355. 11867,  
  356. 11861,  
  357. 11847,  
  358. 11831,  
  359. 11798,  
  360. 11781,  
  361. 11604,  
  362. 11589,  
  363. 11536,  
  364. 11358,  
  365. 11340,  
  366. 11339,  
  367. 11324,  
  368. 11303,  
  369. 11097,  
  370. 11077,  
  371. 11067,  
  372. 11055,  
  373. 11052,  
  374. 11045,  
  375. 11041,  
  376. 11038,  
  377. 11024,  
  378. 11020,  
  379. 11019,  
  380. 11018,  
  381. 11014,  
  382. 10838,  
  383. 10832,  
  384. 10815,  
  385. 10800,  
  386. 10790,  
  387. 10780,  
  388. 10764,  
  389. 10587,  
  390. 10544,  
  391. 10533,  
  392. 10519,  
  393. 10331,  
  394. 10329,  
  395. 10328,  
  396. 10322,  
  397. 10315,  
  398. 10309,  
  399. 10307,  
  400. 10296,  
  401. 10281,  
  402. 10274,  
  403. 10270,  
  404. 10262,  
  405. 10260,  
  406. 10256,  
  407. 10254,0);  
  408. var py2=new Array('a',  
  409. 'ai',  
  410. 'an',  
  411. 'ang',  
  412. 'ao',  
  413. 'ba',  
  414. 'bai',  
  415. 'ban',  
  416. 'bang',  
  417. 'bao',  
  418. 'bei',  
  419. 'ben',  
  420. 'beng',  
  421. 'bi',  
  422. 'bian',  
  423. 'biao',  
  424. 'bie',  
  425. 'bin',  
  426. 'bing',  
  427. 'bo',  
  428. 'bu',  
  429. 'ca',  
  430. 'cai',  
  431. 'can',  
  432. 'cang',  
  433. 'cao',  
  434. 'ce',  
  435. 'ceng',  
  436. 'cha',  
  437. 'chai',  
  438. 'chan',  
  439. 'chang',  
  440. 'chao',  
  441. 'che',  
  442. 'chen',  
  443. 'cheng',  
  444. 'chi',  
  445. 'chong',  
  446. 'chou',  
  447. 'chu',  
  448. 'chuai',  
  449. 'chuan',  
  450. 'chuang',  
  451. 'chui',  
  452. 'chun',  
  453. 'chuo',  
  454. 'ci',  
  455. 'cong',  
  456. 'cou',  
  457. 'cu',  
  458. 'cuan',  
  459. 'cui',  
  460. 'cun',  
  461. 'cuo',  
  462. 'da',  
  463. 'dai',  
  464. 'dan',  
  465. 'dang',  
  466. 'dao',  
  467. 'de',  
  468. 'deng',  
  469. 'di',  
  470. 'dian',  
  471. 'diao',  
  472. 'die',  
  473. 'ding',  
  474. 'diu',  
  475. 'dong',  
  476. 'dou',  
  477. 'du',  
  478. 'duan',  
  479. 'dui',  
  480. 'dun',  
  481. 'duo',  
  482. 'e',  
  483. 'en',  
  484. 'er',  
  485. 'fa',  
  486. 'fan',  
  487. 'fang',  
  488. 'fei',  
  489. 'fen',  
  490. 'feng',  
  491. 'fo',  
  492. 'fou',  
  493. 'fu',  
  494. 'ga',  
  495.   
  496. 'gai',  
  497. 'gan',  
  498. 'gang',  
  499. 'gao',  
  500. 'ge',  
  501. 'gei',  
  502. 'gen',  
  503. 'geng',  
  504. 'gong',  
  505. 'gou',  
  506. 'gu',  
  507. 'gua',  
  508. 'guai',  
  509. 'guan',  
  510. 'guang',  
  511. 'gui',  
  512. 'gun',  
  513. 'guo',  
  514. 'ha',  
  515. 'hai',  
  516. 'han',  
  517. 'hang',  
  518. 'hao',  
  519. 'he',  
  520. 'hei',  
  521. 'hen',  
  522. 'heng',  
  523. 'hong',  
  524. 'hou',  
  525. 'hu',  
  526. 'hua',  
  527. 'huai',  
  528. 'huan',  
  529. 'huang',  
  530. 'hui',  
  531. 'hun',  
  532. 'huo',  
  533. 'ji',  
  534. 'jia',  
  535. 'jian',  
  536. 'jiang',  
  537. 'jiao',  
  538. 'jie',  
  539. 'jin',  
  540. 'jing',  
  541. 'jiong',  
  542. 'jiu',  
  543. 'ju',  
  544. 'juan',  
  545. 'jue',  
  546. 'jun',  
  547. 'ka',  
  548. 'kai',  
  549. 'kan',  
  550. 'kang',  
  551. 'kao',  
  552. 'ke',  
  553. 'ken',  
  554. 'keng',  
  555. 'kong',  
  556. 'kou',  
  557. 'ku',  
  558. 'kua',  
  559. 'kuai',  
  560. 'kuan',  
  561. 'kuang',  
  562. 'kui',  
  563. 'kun',  
  564. 'kuo',  
  565. 'la',  
  566. 'lai',  
  567. 'lan',  
  568. 'lang',  
  569. 'lao',  
  570. 'le',  
  571. 'lei',  
  572. 'leng',  
  573. 'li',  
  574. 'lia',  
  575. 'lian',  
  576. 'liang',  
  577. 'liao',  
  578. 'lie',  
  579. 'lin',  
  580. 'ling',  
  581. 'liu',  
  582. 'long',  
  583. 'lou',  
  584. 'lu',  
  585. 'luan',  
  586. 'lue',  
  587. 'lun',  
  588. 'luo',  
  589. 'lv',  
  590. 'ma',  
  591. 'mai',  
  592. 'man',  
  593. 'mang',  
  594. 'mao',  
  595. 'me',  
  596. 'mei',  
  597. 'men',  
  598. 'meng',  
  599. 'mi',  
  600. 'mian',  
  601. 'miao',  
  602. 'mie',  
  603. 'min',  
  604. 'ming',  
  605. 'miu',  
  606. 'mo',  
  607. 'mou',  
  608. 'mu',  
  609. 'na',  
  610. 'nai',  
  611. 'nan',  
  612. 'nang',  
  613. 'nao',  
  614. 'ne',  
  615. 'nei',  
  616. 'nen',  
  617. 'neng',  
  618. 'ni',  
  619. 'nian',  
  620. 'niang',  
  621. 'niao',  
  622. 'nie',  
  623. 'nin',  
  624. 'ning',  
  625. 'niu',  
  626. 'nong',  
  627. 'nu',  
  628. 'nuan',  
  629. 'nue',  
  630. 'nuo',  
  631. 'nv',  
  632. 'o',  
  633. 'ou',  
  634. 'pa',  
  635. 'pai',  
  636. 'pan',  
  637. 'pang',  
  638. 'pao',  
  639. 'pei',  
  640. 'pen',  
  641. 'peng',  
  642. 'pi',  
  643. 'pian',  
  644. 'piao',  
  645. 'pie',  
  646. 'pin',  
  647. 'ping',  
  648. 'po',  
  649. 'pu',  
  650. 'qi',  
  651. 'qia',  
  652. 'qian',  
  653. 'qiang',  
  654. 'qiao',  
  655. 'qie',  
  656. 'qin',  
  657. 'qing',  
  658. 'qiong',  
  659. 'qiu',  
  660. 'qu',  
  661. 'quan',  
  662. 'que',  
  663. 'qun',  
  664. 'ran',  
  665. 'rang',  
  666. 'rao',  
  667. 're',  
  668. 'ren',  
  669. 'reng',  
  670. 'ri',  
  671. 'rong',  
  672. 'rou',  
  673. 'ru',  
  674. 'ruan',  
  675. 'rui',  
  676. 'run',  
  677. 'ruo',  
  678. 'sa',  
  679. 'sai',  
  680. 'san',  
  681. 'sang',  
  682. 'sao',  
  683. 'se',  
  684. 'sen',  
  685. 'seng',  
  686. 'sha',  
  687. 'shai',  
  688. 'shan',  
  689. 'shang',  
  690. 'shao',  
  691. 'she',  
  692. 'shen',  
  693. 'sheng',  
  694. 'shi',  
  695. 'shou',  
  696. 'shu',  
  697. 'shua',  
  698. 'shuai',  
  699. 'shuan',  
  700. 'shuang',  
  701. 'shui',  
  702. 'shun',  
  703. 'shuo',  
  704. 'si',  
  705. 'song',  
  706. 'sou',  
  707. 'su',  
  708. 'suan',  
  709. 'sui',  
  710. 'sun',  
  711. 'suo',  
  712. 'ta',  
  713. 'tai',  
  714. 'tan',  
  715. 'tang',  
  716. 'tao',  
  717. 'te',  
  718. 'teng',  
  719. 'ti',  
  720. 'tian',  
  721. 'tiao',  
  722. 'tie',  
  723. 'ting',  
  724. 'tong',  
  725. 'tou',  
  726. 'tu',  
  727. 'tuan',  
  728. 'tui',  
  729. 'tun',  
  730. 'tuo',  
  731. 'wa',  
  732. 'wai',  
  733. 'wan',  
  734. 'wang',  
  735. 'wei',  
  736. 'wen',  
  737. 'weng',  
  738. 'wo',  
  739. 'wu',  
  740. 'xi',  
  741. 'xia',  
  742. 'xian',  
  743. 'xiang',  
  744. 'xiao',  
  745. 'xie',  
  746. 'xin',  
  747. 'xing',  
  748. 'xiong',  
  749. 'xiu',  
  750. 'xu',  
  751. 'xuan',  
  752. 'xue',  
  753. 'xun',  
  754. 'ya',  
  755. 'yan',  
  756. 'yang',  
  757. 'yao',  
  758. 'ye',  
  759. 'yi',  
  760. 'yin',  
  761. 'ying',  
  762. 'yo',  
  763. 'yong',  
  764. 'you',  
  765. 'yu',  
  766. 'yuan',  
  767. 'yue',  
  768. 'yun',  
  769. 'za',  
  770. 'zai',  
  771. 'zan',  
  772. 'zang',  
  773. 'zao',  
  774. 'ze',  
  775. 'zei',  
  776. 'zen',  
  777. 'zeng',  
  778. 'zha',  
  779. 'zhai',  
  780. 'zhan',  
  781. 'zhang',  
  782. 'zhao',  
  783. 'zhe',  
  784. 'zhen',  
  785. 'zheng',  
  786. 'zhi',  
  787. 'zhong',  
  788. 'zhou',  
  789. 'zhu',  
  790. 'zhua',  
  791. 'zhuai',  
  792. 'zhuan',  
  793. 'zhuang',  
  794. 'zhui',  
  795. 'zhun',  
  796. 'zhuo',  
  797. 'zi',  
  798. 'zong',  
  799. 'zou',  
  800. 'zu',  
  801. 'zuan',  
  802. 'zui',  
  803. 'zun',  
  804. 'zuo','');  
  805. function getPinYin(index){  
  806. var i;  
  807. if(index==0x1534) return 'yan';  
  808. if(index>0x4F5F||index<0x2807) return '';  
  809. i=0;while(py1[i]>=index)i++;  
  810. return py2[i-1];  
  811. }  
  812. function pinyin(s){  
  813. var i,s2='';  
  814. for (i=0;i<s.length;i++)s2+=getPinYin(0-vbAsc(s.charAt(i)));  
  815. return s2;  
  816. }  
  817. // --></mce:script> 

没有更多推荐了,返回首页