pinyin-pro
pinyin-pro copied to clipboard
支持叠字符号「々」的注音
功能描述
这是一个特殊功能,建议增加一个选项,默认关闭。
々的读音就是读被反复的字的读音,例如,天々(tiān)向上,这里读前面一个字的音。
- https://baike.baidu.com/item/%E3%80%85/9045440
- https://zh.wikipedia.org/wiki/%E5%8F%A0%E5%AD%97%E7%AC%A6%E5%8F%B7
“自己动手,丰衣足食。”
var resolveIterationMark = function(string) {
var current = string.charAt(0);
var result = current;
for (var i = 1; i < string.length; ++i) {
if (string.charAt(i) !== '々') {
current = string.charAt(i);
}
result += current;
}
return result;
};
“自己动手,丰衣足食。”
var resolveIterationMark = function(string) { var current = string.charAt(0); var result = current; for (var i = 1; i < string.length; ++i) { if (string.charAt(i) !== '々') { current = string.charAt(i); } result += current; } return result; };
const resolveIterationMark = (str) => typeof str === 'string'
? str.split('々').reduce((s,c, i, a)=> a.length===1?s:`${s}${s.slice(-1)}${c}`)
: str;
import { html } from 'pinyin-pro';
const resolveIterationMark = (str:string) => typeof str === 'string' && !/^々{1,}$/ig.test(str)
? str.split('々').reduce((s,c, _, a)=> a.length===1?s:`${s}${s.slice(-1)}${c}`)
: str;
const htmlString = [
html(resolveIterationMark('天々向上')),
html(resolveIterationMark('天々向上,好々学习')),
html(resolveIterationMark('々')),
html(resolveIterationMark('々々')),
html(resolveIterationMark('')),
html(resolveIterationMark('々天々')),//开头的“々”会被抛弃
html(resolveIterationMark('施氏食狮史')),
html(resolveIterationMark('牛逼々々')),
].map(html => html?`<div>${html}</div>`:'<div><空行></div>').join('');
document.body.innerHTML = htmlString;