用JavaScript替换中文字符

时间:2011-10-25 10:51:32

标签: c# javascript string encoding cjk

我正在构建一个JavaScript数组,具体取决于用户的输入。该阵列正在建设中,但如果用户输入中文符号则会崩溃。我假设如果用户输入中文“或a或者a”。我有程序替换此英文版本,但我不知道如何替换它的中文版本。

有人可以帮忙吗?

感谢他们的所有输入

4 个答案:

答案 0 :(得分:3)

What's the complete range for Chinese characters in Unicode?开始,CJK unicode范围为:

  • 4E00-9FFF(普通)
  • 3400-4DFF(罕见)
  • F900-FAFF(兼容性 - 重复,统一变体,公司角色)
  • 20000-2A6DF(罕见,历史性)
  • 2F800-2FA1F(兼容性 - 补充)

因为JS字符串仅支持最大值为FFFF的UCS-2,所以最后两个范围可能不是很有意义。因此,如果您正在构建JS字符串,则应该能够使用以下内容过滤掉中文字符:

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

答案 1 :(得分:2)

您需要使用unicode替换器。 我认为它会对你有所帮助:http://answers.yahoo.com/question/index?qid=20080528045141AAJ0AIS

答案 2 :(得分:1)

.Net提供了JavaScriptSerializer及其方法Serialize,它创建了正确的转义JavaScript文字(虽然我个人没有使用它与中文字符,但没有理由它不应该工作)

答案 3 :(得分:1)

以broofa的答案为基础:

如果你只是想找到并替换中文标点符号,如“或”或者a。那么你会想要在FF00-FFEF范围内使用unicode字符。以下是来自Unicode的PDF显示:http://unicode.org/charts/PDF/UFF00.pdf
我想你至少需要更换它们:FF01,FF02,FF07,FF0C,FF0E,FF1F和FF61。这应该是中国的主要标点符号。你可以使用broofa的替换功能。