Jos*_*ion 23 javascript regex string
如何检查给定字符串是否包含一个或多个日文字符(由假名和/或汉字组成)?
我在这里看到了一个类似的问题:如何检查变量是否包含中文/日文字符?,我用解决方案来提出这个:
var containsJapanese = string.match(/[\u3400-\u9FBF]/);
Run Code Online (Sandbox Code Playgroud)
然而,这给出了许多误报.
我已经通过脚本遍历整个网页的内容(例如Facebook,Stack Overflow等)来测试它,并标记了应该包含日文文本的div.在这种情况下,大量的div最终会被错误标记.我还测试了该网页做包含日文文本,而日本的div那里最终得到与许多错误标记的div正确标记.
nha*_*tdh 49
检查这是否有效.我发现这个网站似乎列出了可能在日文文本中使用的Unicode中的所有字符.
相应的正则表达式(单个字符)将是:
/[\u3000-\u303f\u3040-\u309f\u30a0-\u30ff\uff00-\uff9f\u4e00-\u9faf\u3400-\u4dbf]/
-------------_____________-------------_____________-------------_____________
Punctuation Hiragana Katakana Full-width CJK CJK Ext. A
Roman/ (Common & (Rare)
Half-width Uncommon)
Katakana
Run Code Online (Sandbox Code Playgroud)
范围是(从网站引用):
3000 - 303f:日式标点符号3040 - 309f:平假名30a0 - 30ff:片假名ff00 - ff9f:全角罗马字符和半角片假名4e00 - 9faf:CJK统一表意文字 - 普通和不常见的汉字3400 - 4dbf:CJK统一表意文字扩展A - 罕见汉字我稍微改变了范围:
ff00 - ffef到ff00 - ff9f了全角罗马字符和半角片假名.代码点ffa0 - ffdc包含Hangul半角字符,这不是你想要的.您可能希望重新添加代码点ffe0 - ffef,但它们大多是半角标点符号或全角货币符号.您可以检查网站并取消您不想要的任何范围,或确保它不会出现在您的输入中.
| 归档时间: |
|
| 查看次数: |
17855 次 |
| 最近记录: |