如何检查给定字符串是否包含一个或多个日语字符(由假名和/或汉字组成)?
我在这里看到一个类似的问题: How can I check if variable contains Chinese/Japanese characters? ,我用这个解决方案想出了这个:
var containsJapanese = string.match(/[\u3400-\u9FBF]/);
然而,这会产生许多误报。
我通过让脚本遍历整个网页的内容(例如 Facebook、Stack Overflow 等)并标记应该包含日语文本的 div 来测试它。在这些情况下,大量的 div 最终会被错误标记。 我 还在包含日语文本的页面上对其进行了测试,那里的日语 div 最终与许多错误标记的 div 一起得到了正确标记。
原文由 Josh1billion 发布,翻译遵循 CC BY-SA 4.0 许可协议
检查这是否有效。我发现 这个网站 似乎列出了日文文本中可能使用的所有 Unicode 字符。
相应的正则表达式(对于单个字符)将是:
范围是(从网站上引用):
3000 - 303f
:日式标点符号3040 - 309f
: 平假名30a0 - 30ff
: 片假名ff00 - ff9f
: 全角罗马字符和半角片假名4e00 - 9faf
: CJK统一表意文字-普通和不常用汉字3400 - 4dbf
: CJK unified ideographs Extension A - Rare Kanji我稍微改变了范围:
ff00 - ffef
更改为ff00 - ff9f
。来自ffa0 - ffdc
的代码点包含 Hangul 半角字符,这不是您想要的。您可能想重新添加ffe0 - ffef
中的代码点,但它们大多是半角标点符号或全角货币符号。您可以检查站点并删除任何您不想要的范围,或者确定它不会出现在您的输入中。