处理tophonetics的音标

输入: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;//不要修改,这里就是反馈函数的值给

我的结果如下

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值