中文转拼音首字母

中文转拼音首字母简化版,不管是PC端,移动端,小程序上已验证均可运行。

代码如下:

// 拼音声母可能的首字母
const PINYIN_INITIAL_CONSONANT_LETTERS = 'ABCDEFGHJKLMNOPQRSTWXYZ'.split('');
// 拼音声母对应的边界中文
const PINYIN_BOUNDARY_CHAR = '驁簿錯鵽樲鰒餜靃攟鬠纙鞪黁漚曝裠鶸蜶籜鶩鑂韻糳'.split('');

/**
* 获取拼音首字母(大写), 如果不是中文,返回原字符
* 示例
* '中文' => 'ZW'
* '中文123' => 'ZW123'
* 'abc' => 'abc'
*/
  function getChinesePinyinAbbreviation(str) {
    // 空字符串直接返回
    if (!str) {
      return '';
    }
    if (str.length > 1) {
      return str.split('').map(getChinesePinyinAbbreviation).join('');
    }
    // 判断字符是否为中文,不是中文返回原字符
    if (/[^\u4e00-\u9fa5]/.test(str)) {
      return str;
    }
    const index = PINYIN_BOUNDARY_CHAR.findIndex((char) => {
      return char.localeCompare(str, 'zh-CN-u-co-pinyin') >= 0;
    });
    return PINYIN_INITIAL_CONSONANT_LETTERS[index];
  }
console.log(getChinesePinyinAbbreviation("中国123".substring(0,1)));

 

posted @ 2025-02-10 22:16  微宇宙  阅读(107)  评论(0)    收藏  举报