寰俊鎼滅储銆愬ぇ鎷涜蛋鍚戜笘鐣屻€戯紝绗竴鏃堕棿涓庡ぇ瀹跺垎浜墠绔涓氬姩鎬併€佸涔犺矾寰勭瓑銆傛湰鏂嘒itHubhttps://github.com/qq44924588...宸叉敹褰曪紝鏈夊畬鏁寸殑娴嬭瘯绔欑偣銆佽祫鏂欏拰鎴戠殑涓€绾垮巶鍟嗚璋堢郴鍒楁枃绔犮€傛渶杩戠湅鍒颁竴绉嶆柊鐨勫瓧绗︿覆鎷嗗垎鏂瑰紡锛屽氨鏄娇鐢↖ntl.Segmenter灏唀moji瀛楃涓叉媶鍒嗘垚glyphs銆傝繖涓狪ntl瀵硅薄鎴戜互鍓嶆病鏈夌敤杩囷紝鐜板湪鏉ョ湅鐪嬪惂銆傚亣璁炬偍鎯冲皢鐢ㄦ埛杈撳叆鎷嗗垎鎴愬彞瀛愶紝杩欎技涔庢槸涓€涓畝鍗曠殑split()浠诲姟鈥︹€︿絾鏄繖涓棶棰樻湁寰堝缁嗗井宸埆銆?浣犲ソ锛丠owareyou?'.split(/[.!?]/);//['Hello','Howareyou','']浣跨敤split()灏嗕涪澶卞畾涔夌殑鍒嗛殧绗︼紝骞跺皢鍦ㄦ墍鏈夊寘鍚殑鍦版柟浣跨敤杩欎簺绌洪棿銆傝€屼笖鍥犱负瀹冧緷璧栦簬纭紪鐮佺殑鍒嗛殧绗︼紝鎵€浠ュ畠瀵硅瑷€涓嶆晱鎰熴€傛垜涓嶆噦鏃ヨ锛屼絾浣犱細濡備綍灏濊瘯灏嗕笅闈㈢殑瀛楃涓叉媶鍒嗘垚鍗曡瘝鎴栧彞瀛愶紵//鎴戞槸涓€鍙尗銆傛垜鐨勫悕瀛楁槸Tanuki銆?鎴戣緢銇尗銇с亗銈嬨€傚湪銇仧銇亶涔嬪墠鐨勫悕瀛椼€?鏅€氱殑瀛楃涓叉柟娉曞湪杩欓噷娌℃湁鐢紝浣嗘槸IntlJavaScriptAPI纭疄瑙e喅浜嗚繖涓棶棰樸€侷ntl.Segmenter鏉ユ嫰鏁慖ntl.Segmenter鏄竴涓狫avaScript瀵硅薄锛岀敤浜庢枃鏈殑璇█鐜鏁忔劅鍒嗗壊銆傚畠甯姪鎴戜滑浠庡瓧绗︿覆涓彁鍙栨湁鎰忎箟鐨勯」鐩紝渚嬪鍗曡瘝銆佸彞瀛愭垨瀛楀舰銆傚畠鐨勭敤娉曞拰鍏朵粬鏋勯€犲嚱鏁扮被浼硷紝鍙互浣跨敤new鍏抽敭瀛楁潵鍒涘缓涓€涓狪ntl.Segmenter瀵硅薄銆俢onstsegmenter=newIntl.Segmenter(locale,{granularity:"word"});鍦ㄤ笂闈㈢殑浠g爜涓紝locale鏄竴涓瓧绗︿覆锛岃〃绀鸿浣跨敤鐨勮瑷€鐜銆俫ranularity鏄竴涓瓧绗︿覆锛屾寚绀烘鐨勭矑搴︺€傚畠鍙互鏄€滃瓧褰⑩€濓紙grapheme锛夈€佲€滆瘝鈥濓紙word锛夋垨鈥滃彞瀛愨€濓紙sentence锛変箣涓€銆侷ntl.Segmenter鏈変竴涓悕涓簊egment()鐨勬湁鐢ㄦ柟娉曪紝鍙皢鏂囨湰鎷嗗垎涓烘湁鎰忎箟鐨勭墖娈点€俢onstsegments=segmenter.segment(text);鍦ㄤ笂闈㈢殑浠g爜涓紝text鏄鎷嗗垎鐨勬枃鏈紝segments鏄繑鍥炵殑娈电殑杩唬鍣ㄣ€傛偍鍙互浣跨敤for-of寰€嬧€嬬幆閬嶅巻娈碉紝鎴栦娇鐢ˋrray.from()灏嗗畠浠浆鎹负鏁扮粍銆俢onsttext="浣犲ソ锛屼笘鐣岋紒浣犱粖澶╁ソ鍚楋紵";甯搁噺鍒嗘鍣?鏂板浗闄呫€傚垎娈靛櫒锛堚€渆n-US鈥濓紝{绮掑害锛氣€滃彞瀛愨€潁锛夛紱const娈?鍒嗘鍣ㄣ€傛锛堟枃鏈級锛沠or(constsegmentofsegments){console.log(segment);}//Output://{index:0,value:"Hello,world!",breakType:"",breakIndex:12}//{index:13,value:"Howareyoutoday?",breakType:"",breakIndex:31}Intl.Segmenter瀵硅薄杩樻湁涓€浜涘叾浠栨湁鐢ㄧ殑鏂规硶锛屼緥濡俠reakType锛岀敤浜庢绱㈡鐨勭被鍨嬶紙渚嬪锛屾槸鍚︾粨鏉熶竴涓彞瀛愬寘鍚彞鍙凤級銆傚彟涓€涓湁鐢ㄧ殑鏂规硶鏄痓reakType锛岀敤浜庢绱㈡鐨勭被鍨嬨€備緥濡傦細consttext="Hello,world锛佷綘浠婂ぉ濂藉悧锛?;constsegmenter=newIntl.Segmenter("en-US",{granularity:"sentence"});constsegments=segmenter.segment(text);for(constsegmentofsegments){console.log(segment.breakType);}//Output://"exclamation"//"question"Intl.Segmenter杩樻湁涓€涓湁鐢ㄧ殑闈欐€佹柟娉曞彨鍋歴upportedLocalesOf()锛屽畠鍙互甯姪浣犵‘瀹氭祻瑙堝櫒鏄惁鏀寔鐗瑰畾鍖哄煙璁剧疆銆俢onstsupported=Intl.Segmenter.supportedLocalesOf(["en-US","zh-CN"]);console.log(supported);//Output://['en-US','zh-CN']鍦ㄤ笂闈㈢殑浠g爜涓紝supported鏁扮粍鍖呭惈娴忚鍣ㄦ敮鎸佺殑璇█鐜銆傚鏋滀綘鎯宠鏇寸粏绮掑害鐨勬枃鏈垎鍓诧紝浣犲彲浠ヤ娇鐢↖ntl.ListFormat瀵硅薄銆傚畠鍙互甯姪鎮ㄥ皢鏂囨湰鎷嗗垎涓烘湁鎰忎箟鐨勫垪琛ㄩ」銆備笌Intl.Segmenter绫讳技锛屾偍鍙互浣跨敤new鍏抽敭瀛楀垱寤轰竴涓狪ntl.ListFormat瀵硅薄銆俢onstlistFormat=newIntl.ListFormat(locale,{style:"long",type:"conjunction"});鍦ㄤ笂闈㈢殑浠g爜涓紝locale鏄竴涓瓧绗︿覆锛岃〃绀鸿浣跨敤鐨勮瑷€鐜銆傛牱寮忓拰绫诲瀷鏄寚瀹氬垪琛ㄦ牸寮忕殑瀵硅薄鐨勫睘鎬с€俿tyle鍙互鏄€渓ong鈥濇垨鈥渟hort鈥濓紝type鍙互鏄€渃onjunction鈥濓紙tie锛夋垨鈥渄isjunction鈥濓紙or锛夈€侷ntl.ListFormat鏈変竴涓悕涓篺ormat()鐨勬湁鐢ㄦ柟娉曪紝鍙皢鏁扮粍杞崲涓烘湁鎰忎箟鐨勫垪琛ㄣ€俢onstlist=["鑻规灉","棣欒晧","姗欏瓙"];const鏍煎紡鍖?listFormat.format(鍒楄〃);鎺у埗鍙版棩蹇楋紙鏍煎紡鍖栵級锛?/Output://"apple,banana,andorange"ontop鐨勪唬鐮佷腑锛屾牸寮忓寲涓鸿浆鎹㈠悗鐨勫垪琛ㄥ瓧绗︿覆銆俉ord鐨勭矑搴︽湁涓€涓澶栫殑isWordLike灞炴€с€傚鏋滃皢瀛楃涓叉媶鍒嗕负鍗曡瘝锛屽垯鎵€鏈夋閮藉寘鍚┖鏍煎拰鎹㈣绗︺€備娇鐢╥sWordLike灞炴€у皢瀹冧滑杩囨护鎺夈€俢onstsegmenterDe=newIntl.Segmenter('de',{granularity:'word'});constsegmentsDe=segmenterDe.segment('Wasgehtab?');console.log([...segmentsDe]);//[//{segment:'Was',index:0,input:'Wasgehtab?',isWordLike:true},//{segment:'',绱㈠紩锛?锛岃緭鍏ワ細'Wasgehtab?',isWordLike:false},//...//]console.log([...segmentsDe].filter(s=>s.isWordLike));//[//{segment:'Was',index:0,input:'Wasgehtab?',isWordLike:true},//{segment:'geht',index:4,input:'Wasgehtab?',isWordLike:true},//{segment:'ab',index:9,input:'Wasgehtab?',isWordLike:true}//]閫氳繃涓婇潰鐨刬sWordLike杩囨护浼氬幓闄ゆ爣鐐圭鍙凤紝姣斿.,-,or锛?浣跨敤Intl.Segmenter鍒嗗壊琛ㄦ儏绗﹀彿Intl.Segmenter涔熸槸涓€涓緢澶х殑甯姪锛屽鏋滀綘鎯冲皢瀛楃涓插垎鍓叉垚瑙嗚琛ㄦ儏绗﹀彿銆俢onstemojis='馃馃馃懆鈥嶐煈ㄢ€嶐煈︹€嶐煈?;//---//鎸変唬鐮佸崟浣嶆媶鍒哻onsole.log(emojis.split(''));//['\uD83E','\uDEE3','\uD83E','\uDEF5','\uD83D','\uDE48']//----//鎸変唬鐮佺偣鎷嗗垎console.log([...emojis]);//['馃','馃','馃懆','鈥?,'馃懆','鈥?,'馃懄','鈥?,'馃懄']//----//鐢眊raphemesconstsegmenter=newIntl.Segmenter('en',{绮掑害:'瀛楃礌'});const娈?鍒嗘鍣ㄣ€傛锛堣〃鎯呯鍙凤級锛涘畨鎱般€俵og(Array.from(segmenter.segment(emojis),s=>s.segment));//['馃','馃','馃懆鈥嶐煈ㄢ€嶐煈︹€嶐煈?]娉ㄦ剰瀛楀舰涔熷寘鎷┖鏍煎拰鈥滄甯糕€濆瓧绗︺€傜紪杈戣繃绋嬩腑鍙兘瀛樺湪鐨凚UG鏃犳硶瀹炴椂鑾风煡銆備箣鍚庝负浜嗚В鍐宠繖浜沚ug锛岃姳璐逛簡澶ч噺鐨勬椂闂村湪鏃ュ織璋冭瘯涓娿€傞『渚挎帹鑽愪竴涓ソ鐢ㄧ殑BUG鐩戞帶宸ュ叿Fundebug銆傚弬鑰僪ttps://www.stefanjudis.com/t...https://2ality.com/2022/11/re...鍘熸枃锛歨ttps://www.stefanjudis.com/t...閫氳鏈夋ⅵ鎯筹紝灏辨湁骞茶揣锛屽井淇℃悳绱€愬ぇ鍗冧笘鐣屻€戝叧娉ㄨ繖浣嶅噷鏅ㄨ繕鍦ㄦ礂纰楃殑娲楃鏅烘収銆傛湰鏂囧凡鏀跺綍鍒癎itHubhttps://github.com/qq449245884/xiaozhi锛岄噷闈㈡湁瀹屾暣鐨勬祴璇曠珯鐐广€佽祫鏂欏拰鎴戠殑涓€绾垮巶鍟嗚璋堢郴鍒楁枃绔犮€?/p>
