Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

pinyin-pro

Package Overview
Dependencies
Maintainers
1
Versions
147
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

pinyin-pro - npm Package Compare versions

Comparing version 3.5.0 to 3.6.0-alpha

8

CHANGELOG.md

@@ -0,2 +1,10 @@

## 3.6.0
当前版本: 3.5.0 -> 3.6.0
- 新增功能
- `pinyin` 方法新增 `removeNonZh` 参数,为 `true` 时移除非汉字的字符
## 3.5.0
当前版本: 3.4.1 -> 3.5.0

@@ -3,0 +11,0 @@

4

lib/custom.ts

@@ -8,2 +8,6 @@ import _DICT1 from '../data/dict1';

/**
* @description: 用户自定义拼音
* @param {{ [key: string]: string }} config 用户自定义的拼音映射(支持汉字、词语、句子的映射),若匹配到该映射,优先将汉字转换为该映射
*/
export function customPinyin(config: { [key: string]: string } = {}) {

@@ -10,0 +14,0 @@ for (let key in config) {

@@ -89,2 +89,3 @@ import INITIAL_LIST from '../data/initial';

const left_word = word.slice(0, index);
// left_word 存在时,说明左侧不存在姓氏词
const left_pinyin = left_word

@@ -91,0 +92,0 @@ ? `${getPinyin(left_word, left_word.length)} `

import { pinyin as _pinyin } from './pinyin';
// 汉语和拼音是否匹配
/**
* @description: 检测汉语字符串和拼音是否匹配
* @param {string} words 汉语字符串
* @param {string} pinyin 拼音,支持各种缩写形式
* @return {Array | null} 若匹配成功,返回拼音在汉字中的下标数组;若匹配失败,返回 null
*/
export const match = (words: string, pinyin: string) => {

@@ -5,0 +10,0 @@ const result = [];

73

lib/pinyin.ts

@@ -11,9 +11,22 @@ import {

const DEFAULT_OPTIONS: {
interface BasicOptions {
toneType?: 'symbol' | 'num' | 'none';
pattern?: 'pinyin' | 'initial' | 'final' | 'num' | 'first';
type?: 'string' | 'array';
multiple?: boolean;
mode?: 'normal' | 'surname';
} = {
removeNonZh?: boolean;
}
interface OptionsReturnString extends BasicOptions {
type?: 'string';
}
interface OptionsReturnArray extends BasicOptions {
type: 'array';
}
interface CompleteOptions extends BasicOptions {
type?: 'string' | 'array';
}
const DEFAULT_OPTIONS: CompleteOptions = {
pattern: 'pinyin',

@@ -24,25 +37,27 @@ toneType: 'symbol',

mode: 'normal',
removeNonZh: false,
};
function pinyin(
word: string,
options?: {
toneType?: 'symbol' | 'num' | 'none';
pattern?: 'pinyin' | 'initial' | 'final' | 'num' | 'first';
type?: 'string';
multiple?: boolean;
mode?: 'normal' | 'surname';
}
): string;
function pinyin(
word: string,
options?: {
toneType?: 'symbol' | 'num' | 'none';
pattern?: 'pinyin' | 'initial' | 'final' | 'num' | 'first';
type: 'array';
multiple?: boolean;
mode?: 'normal' | 'surname';
}
): string[];
/**
* @description: 获取汉语字符串的拼音
* @param {string} word 要转换的汉语字符串
* @param {OptionsReturnString} options 配置项
* @return {string | string[]} options 配置项中的 type 为 string 时,返回字符串,中间用空格隔开;为 array 时,返回拼音字符串数组
*/
function pinyin(word: string, options?: OptionsReturnString): string;
/**
* @description: 获取汉语字符串的拼音
* @param {string} word 要转换的汉语字符串
* @param {OptionsReturnArray} options 配置项
* @return {string | string[]} options 配置项中的 type 为 string 时,返回字符串,中间用空格隔开;为 array 时,返回拼音字符串数组
*/
function pinyin(word: string, options?: OptionsReturnArray): string[];
/**
* @description: 获取汉语字符串的拼音
* @param {string} word 要转换的汉语字符串
* @param {CompleteOptions} options 配置项
* @return {string | string[]} options 配置项中的 type 为 string 时,返回字符串,中间用空格隔开;为 array 时,返回拼音字符串数组
*/
function pinyin(word: string, options = DEFAULT_OPTIONS): string | string[] {

@@ -57,2 +72,14 @@ // word传入类型错误时

}
// 如果 removeNonZh 为 true,移除非中文字符串
if (options.removeNonZh) {
let str = '';
for (let i = 0; i < word.length; i++) {
const char = word[i];
let code = char.charCodeAt(0);
if (code >= 19968 && code <= 40869) {
str += char;
}
}
word = str;
}

@@ -59,0 +86,0 @@ // 获取原始拼音

{
"name": "pinyin-pro",
"version": "3.5.0",
"version": "3.6.0-alpha",
"description": "汉字转拼音库。获取中文拼音、韵母、声母、声调、首字母,支持拼音匹配",

@@ -5,0 +5,0 @@ "main": "./dist/index.js",

@@ -26,6 +26,6 @@ [![pinyin-pro Logo](https://i.ibb.co/26fJ5vF/pinyin-logo.png)](https://github.com/zh-lx/pinyin-pro)

当前版本: 3.4.1 -> 3.5.0
当前版本: 3.5.0 -> 3.6.0
- 新增功能
- 新增 `match` api 以支持[拼音文本匹配功能](#match)
- `pinyin` 方法新增 `removeNonZh` 参数,为 `true` 时移除非汉字的字符

@@ -84,9 +84,10 @@ 点击查看 [版本更新文档](./CHANGELOG.md)

| 参数 | 说明 | 类型 | 可选值 | 默认值 |
| -------- | ------------------------------------------------------------- | ------- | -------------------------------------- | ------ |
| pattern | 输出的结果的信息(拼音 / 声母 / 韵母 / 音调 / 首字母) | string | pinyin / initial / final / num / first | pinyin |
| toneType | 音调输出形式(拼音符号 / 数字 / 不加音调) | string | symbol / num / none | symbol |
| type | 输出结果类型(字符串/数组) | string | string / array | string |
| multiple | 输出多音字全部拼音(仅在 word 为长度为 1 的汉字字符串时生效) | boolean | true / false | false |
| mode | 拼音查找的模式(常规模式 / 姓氏模式) | string | normal / surname | normal |
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
| ----------- | ------------------------------------------------------------- | ------- | -------------------------------------- | ------ |
| pattern | 输出的结果的信息(拼音 / 声母 / 韵母 / 音调 / 首字母) | string | pinyin / initial / final / num / first | pinyin |
| toneType | 音调输出形式(拼音符号 / 数字 / 不加音调) | string | symbol / num / none | symbol |
| type | 输出结果类型(字符串/数组) | string | string / array | string |
| multiple | 输出多音字全部拼音(仅在 word 为长度为 1 的汉字字符串时生效) | boolean | true / false | false |
| mode | 拼音查找的模式(常规模式 / 姓氏模式) | string | normal / surname | normal |
| removeNonZh | 是否输入字符串中将非汉字的字符过滤掉 | boolean | true / false | false |

@@ -197,2 +198,16 @@ ## 使用示例

### <a id="removeNonZh">过滤非汉字字符</a>
通过设置 `removeNonZh: true` ,可以过滤输入字符串中的非汉字字符
```javascript
import { pinyin } from 'pinyin-pro';
// 不开启过滤
pinyin('汉sa语2拼音'); // 'hàn s a yǔ 2 pīn yīn'
// 开启过滤
pinyin('汉sa语2拼音', { removeNonZh: true }); // 'hàn yǔ pīn yīn'
```
### <a id="custom">自定义拼音</a>

@@ -235,2 +250,2 @@

![wechat](https://i.ibb.co/VYXW19H/QQ-20210323221842.jpg)
![wechat](https://image-1300099782.cos.ap-beijing.myqcloud.com/author.jpg)

@@ -454,1 +454,8 @@ const { pinyin, customPinyin, match } = require('../dist/index');

});
describe('removeNonZh', () => {
it('removeNonZh', () => {
const result = pinyin('汉sa语2拼音', { removeNonZh: true });
expect(result).to.be.equal('hàn yǔ pīn yīn');
});
});

@@ -0,1 +1,5 @@

/**
* @description: 用户自定义拼音
* @param {{ [key: string]: string }} config 用户自定义的拼音映射(支持汉字、词语、句子的映射),若匹配到该映射,优先将汉字转换为该映射
*/
export declare function customPinyin(config?: {

@@ -2,0 +6,0 @@ [key: string]: string;

@@ -0,1 +1,7 @@

/**
* @description: 检测汉语字符串和拼音是否匹配
* @param {string} words 汉语字符串
* @param {string} pinyin 拼音,支持各种缩写形式
* @return {Array | null} 若匹配成功,返回拼音在汉字中的下标数组;若匹配失败,返回 null
*/
export declare const match: (words: string, pinyin: string) => number[] | null;

@@ -1,15 +0,28 @@

declare function pinyin(word: string, options?: {
interface BasicOptions {
toneType?: 'symbol' | 'num' | 'none';
pattern?: 'pinyin' | 'initial' | 'final' | 'num' | 'first';
type?: 'string';
multiple?: boolean;
mode?: 'normal' | 'surname';
}): string;
declare function pinyin(word: string, options?: {
toneType?: 'symbol' | 'num' | 'none';
pattern?: 'pinyin' | 'initial' | 'final' | 'num' | 'first';
removeNonZh?: boolean;
}
interface OptionsReturnString extends BasicOptions {
type?: 'string';
}
interface OptionsReturnArray extends BasicOptions {
type: 'array';
multiple?: boolean;
mode?: 'normal' | 'surname';
}): string[];
}
/**
* @description: 获取汉语字符串的拼音
* @param {string} word 要转换的汉语字符串
* @param {OptionsReturnString} options 配置项
* @return {string | string[]} options 配置项中的 type 为 string 时,返回字符串,中间用空格隔开;为 array 时,返回拼音字符串数组
*/
declare function pinyin(word: string, options?: OptionsReturnString): string;
/**
* @description: 获取汉语字符串的拼音
* @param {string} word 要转换的汉语字符串
* @param {OptionsReturnArray} options 配置项
* @return {string | string[]} options 配置项中的 type 为 string 时,返回字符串,中间用空格隔开;为 array 时,返回拼音字符串数组
*/
declare function pinyin(word: string, options?: OptionsReturnArray): string[];
export { pinyin };

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc