pinyin-pro
Advanced tools
Comparing version 3.5.0 to 3.6.0-alpha
@@ -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 @@ |
@@ -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 = []; |
@@ -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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2510618
94200
248
1