From d04d43de33cc065cf0f7f422b821e57c5cfde678 Mon Sep 17 00:00:00 2001 From: lieren2023 <131325076+lieren2023@users.noreply.github.com> Date: Fri, 22 Mar 2024 14:24:48 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E5=A6=82=E6=9E=9C=E8=8B=B1?= =?UTF-8?q?=E6=96=87=E6=AD=A6=E5=B0=86=E5=90=8D=E6=9C=89=E7=A9=BA=E6=A0=BC?= =?UTF-8?q?=E8=B5=84=E6=96=99=E5=8D=A1=E4=BC=9A=E5=BC=B9=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/pinyinjs.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/game/pinyinjs.js b/game/pinyinjs.js index c65dbbe08..18071ddb5 100644 --- a/game/pinyinjs.js +++ b/game/pinyinjs.js @@ -41588,6 +41588,10 @@ var pinyin_dict_withtone = "yī,dīng zhēng,kǎo qiǎo yú,qī,shàng,xià,hǎn * @param splitter 返回结果拼接字符 */ function parsePolyphone(chinese, result, splitter, withtone) { + // 先删除中文字符之外的所有字符(包括英文字母、数字、标点符号、空格和其他非中文字符),然后再查找多音字 + chinese = chinese.replace(/[^\u4e00-\u9fa5]/g, ''); + if(chinese.length == 0) return result; + var poly = window.pinyin_dict_polyphone; var max = 7; // 最多只考虑7个汉字的多音字词,虽然词库里面有10个字的,但是数量非常少,为了整体效率暂时忽略之 var temp = poly[chinese]; @@ -41604,10 +41608,6 @@ var pinyin_dict_withtone = "yī,dīng zhēng,kǎo qiǎo yú,qī,shàng,xià,hǎn for (var i = 0; i < chinese.length;(i++,m++)) { temp = ''; for (var j = 0; j < max && (i + j) < chinese.length; j++) { - if (!dict.withtone[chinese[i]]) { - i+=(result[m].length-1); - break; - } // 如果碰到非汉字直接停止本次查找 temp += chinese[i + j]; var res = poly[temp]; if (res) // 如果找到了多音字词语