如何检查给定的字符串是否包含一个或多个日语字符(包括假名和/或汉字)?
我在这里看到了类似的问题:How can I check if variable contains Chinese/Japanese characters?,我使用该解决方案得出以下结果:
var containsJapanese = string.match(/[\u3400-\u9FBF]/);
然而,这会产生许多假阳性。
我测试过它,让一个脚本遍历整个网页的内容--比如Facebook、Stack Overflow等--并标记那些应该包含日语文本的div。在这种情况下,大量的div最终会被错误地标记。我还在那些 * 确实 * 包含日语文本的页面上测试过它。并且日本的div最终与许多标记错误的div一起被正确地标记。
3条答案
按热度按时间p5cysglq1#
检查这是否有效。我发现this website似乎列出了所有可能在日语文本中使用的Unicode字符。
对应的正则表达式(对于单个字符)为:
范围为(引用自研究中心):
3000 - 303f
:日式标点符号3040 - 309f
:平假名30a0 - 30ff
:片假名ff00 - ff9f
:全角罗马字符和半角片假名4e00 - 9faf
:CJK统一表意文字-常用和不常用汉字3400 - 4dbf
:CJK统一表意文字扩展区A -稀有汉字我稍微更改了范围:
ff00 - ffef
更改为ff00 - ff9f
。ffa0 - ffdc
中的代码点包含韩文半角字符,这不是您想要的。您可能希望重新添加ffe0 - ffef
中的代码点,但它们大多是半角标点符号或全角货币符号。您可以检查站点并删除任何不需要的范围,或者确保它不会出现在您的输入中。
vfh0ocws2#
使用charCode函数检测日语。例如,(来自网站http://www.jpf.go.jp/j/index.html)
ecfdbz9o3#
检查平假名的实际大小/^[-]+$/