输入:tophonetics的音标
输出:excle格式,或者js格式
选line by line 和/+/
复制到word
内容在下面
Hold
/həʊld/
High
/haɪ/
the
/ðə/
Great
/greɪt/
Banner
/ˈbænər/
of
/ɒv/
Socialism
/ˈsəʊʃəlɪzm/
with
/wɪð/
Chinese
/ˌʧaɪˈniːz/
Characteristics
/ˌkærɪktəˈrɪstɪks/
and
/ænd/
Strive
/straɪv/
in
/ɪn/
Unity
/ˈjuːnɪti/
to
/tuː/
Build
/bɪld/
a
/ə/
Modern
/ˈmɒdən/
Socialist
/ˈsəʊʃəlɪst/
Country
/ˈkʌntri/
in
/ɪn/
All
/ɔːl/
Respects
/rɪsˈpɛkts/
复制这个内容,点运行
app.data.outArr.push(outjnew);//第一次全部单词
app.data.outArr.push(outjnewno);// 第二次没有的音标
app.data.outArr.push(outjstr);// 全部音标str形式
app.data.outArr.push(addarr);//需要新增的音标
app.data.outArr.push(addstr);//需要新增音标的str形式
app.data.outArr.push(jall);//老的库
复制到excle自己看结果
var result ='ok'
//20220515,把英标ɛ 改成e;
//20221031把库补上
let isnoblank=true;//true表示如果没有翻译出来,就用空白替换,如果是false,就用原文替换
let iscutword=true;//true,2个字母或者cutword简单字母的,不标音标,比如a an the,如果是false,就用全部标注
let jsph=app.getphlist()//获取js格式的单词音标库
let delword='apec+aren+cann+chen+chengdu+chongqing+couldn+cpc+cppcc+deng+doesn+don+enlai+fengqiao+gdp+guangdong+gutian+hadn+hainan+hasn+haven+hebei+hong+hu+ii+iii+isn+iv+ix+jiang+jinping+jintao+karen+kong+liu+mao+oct+rmb+rst+sally+sco+shaoqi+shouldn+soes+st+taiping+th+tianjin+vi+vii+viii+wasn+weren+wouldn+wto+xi+xiaoping+xii+xiii+xinhua+xiongan+xiv+xv+yihetuan+yun+zedong+zemin+zhou+zhu+';//+结尾
//不想标注的单词
delword=delword.slice(0,-1)
let delarr=delword.toLowerCase().split("+")//分割一下
let outstr=''
let word=''
let nword=''
let mword=''
let wordshow=''
let arrword=[]
let arroutw=[]
let isre=false
let bk4=' '//空4个
let str=''
let copyStr=app.data.copyArr[0]//获取剪贴板数据,第一次复制,获取音标和单词的对应关系
let inarr=copyStr.split("\r\n")
let isfirst=true// 数据必须是 单词,英标;这样的形式,不能是
let iscut=false;
for(let m=0;m<inarr.length;m++)
{
str=inarr[m]
if(str.trim()==''&&isfirst)
{}else
{isfirst=false
if(isaz(str)){
if(inarr[m]==inarr[m+1]&&isnoblank) {outstr=outstr+'"'+str+'":"'+''+'",'; } else {
inarr[m+1]=replaceall(inarr[m+1],'ɛ','e');outstr=outstr+'"'+str+'":"'+inarr[m+1]+'",';}
m++;
}
}
}
outstr="{ "+outstr.slice(0,-1)+" }"
let jnew=JSON.parse(outstr)// 获取音标结束
outstr='';
let outjnew='';
let outjstr='';
for (var key in jnew )
{
outjnew=outjnew+key+'\t'+jnew[key]+'\r\n'
}
let jall='';
for (var key in jsph )
{
jall=jall+key+'\t'+jsph[key]+'\r\n'
}
let outjnewno='';
let addarr='';
let addstr=''
for (var key in jnew )
{
if((jnew[key]==''||jnew[key]==key)&&(delarr.indexOf(key.toLowerCase())==-1))
{ outjnewno=outjnewno+key+'\t'+jnew[key]+'\r\n' }
else {
outjstr=outjstr+'"'+key+'":"'+jnew[key]+'",'
if((jsph[key]==undefined)&&(delarr.indexOf(key.toLowerCase())==-1))
{ addarr=addarr+key+'\t'+jnew[key]+'\r\n' ; addstr=addstr+'"'+key+'":"'+jnew[key]+'",' }
}
}
outjnewno=outjnewno+''+'\r\n'
// 新的是没有音标的,空格下面是没有标注的,放在一起显示了
for(let ni=0;ni<delarr.length;ni++)
{
outjnewno=outjnewno+delarr[ni]+'\r\n'
}
app.data.outArr=[]
app.data.outArr.push(outjnew);//第一次全部单词
app.data.outArr.push(outjnewno);// 第二次没有的音标
app.data.outArr.push(outjstr);// 全部音标str形式
app.data.outArr.push(addarr);//需要新增的音标
app.data.outArr.push(addstr);//需要新增音标的str形式
app.data.outArr.push(jall);//老的库
app.data.outStr=addarr;//把数据传递出去剪贴板数据
//字符替换函数
function replaceall(str, substr, newstr) {
var p = -1;
var s = 0;
while((p = str.indexOf(substr, s)) > -1) {
s = p + newstr.length;
str = str.replace(substr, newstr);
}
return str;
};
function isaz(val){
var regPos = /[a-zA-Z]/;
if(regPos.test(val)){
return true;
}else{
return false;
}
};
app.setData({
result:'ok'
});
result;//不要修改,这里就是反馈函数的值给
我的结果如下