簡體   English   中英

JavaScript 替換漢字

[英]JavaScript to replace Chinese characters

我正在根據用戶的輸入構建一個 JavaScript 數組。 該數組構建良好,但如果用戶輸入中文符號,它就會崩潰。 我假設如果用戶輸入中文“或 a, 或 '。我有程序替換它的英文版本,但我不知道如何替換它的中文版本。

誰能幫忙?

感謝所有人的投入

來自Unicode的中文字符的完整范圍是什么? ,CJK unicode范圍是:

  • 4E00-9FFF(普通)
  • 3400-4DFF(罕見)
  • F900-FAFF(兼容性 - 重復,統一變體,公司角色)
  • 20000-2A6DF(罕見,歷史悠久)
  • 2F800-2FA1F(兼容性 - 補充)

因為JS字符串僅支持UCS-2,其最大值為FFFF,所以最后兩個范圍可能不是很有意義。 因此,如果您正在構建JS字符串,則應該能夠使用以下內容過濾掉中文字符:

replace(/[\u4e00-\u9fff\u3400-\u4dff\uf900-\ufaff]/g, '')

您需要使用unicode替換器。 我認為它會對你有所幫助: http//answers.yahoo.com/question/index?qid = 20080528045141AAJ0AIS

以broofa的答案為基礎:

如果你只是想找到並替換中文標點符號,如“或”或者a。 那么你會想要在FF00-FFEF范圍內使用unicode字符。 以下是來自Unicode的PDF顯示: http//unicode.org/charts/PDF/UFF00.pdf
我想你至少需要更換它們:FF01,FF02,FF07,FF0C,FF0E,FF1F和FF61。 這應該是中國的主要標點符號。 你可以使用broofa的替換功能。

.Net提供了JavaScriptSerializer和它的方法Serialize ,它創建了正確的轉義JavaScript文字(盡管我個人沒有用過中文字符,但沒有理由它不應該工作)。

不是被問題問到的,而是加上゠-ヿ぀-ゟ也可以把日語中的平假名和片假名去掉:

replace(/[\u4e00-\u9fff\u3400-\u4dff\uf900-\ufaff\u30a0-\u30ff\u3040-\u309f]/g, '')
  1. https://regex101.com/r/4Aw9Q8/1
  2. https://en.wikipedia.org/wiki/Katakana_(Unicode_block)
  3. https://en.wikipedia.org/wiki/Hiragana_(Unicode_block)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM