我目前有这个http://jsfiddle.net/cuLa9mtf/8/
function wordStat(text) {
return text.split('').filter(function(letter){
return letter > '\u3040' && letter < '\u4DBF';
}).reduce(function (stat, word) {
if (!stat[word]) stat[word] = 0;
stat[word]++;
return stat;
}, {});
}
var input = document.querySelector('#input');
var output = document.querySelector('#output');
input.addEventListener('keyup', function () {
output.value = JSON.stringify(wordStat(input.value), 2, 2);
})
但它似乎不起作用,这取决于我从何处复制日语文本。如果我从Rikai复制并粘贴字符,则可以正常工作,并且可以在结果数组中看到结果(预期结果),但是,如果从其他站点(例如Jisho词典)进行复制,则无法正常工作(字符被过滤掉)。
我将使用的方式是:我将有一个文本框,用户将在其中粘贴其日语文本,并且将过滤掉所有非日语字符的内容(取出[a-zA-Z所有其他语言的标点符号]。这带给我一个问题,即如何使用前端Javascript可靠地过滤掉非日语字符?
(根据Rikai日语字符为unicode \ u3040-\ u4DBF)
看完代码和Rikai链接后,似乎您错过了很多字符:CJK unifed表意文字-常见和罕见的汉字(4e00-9faf)
我对您进行了很小的修改,filter
看来可以成功地从Jisho字典中提取汉字字符:
function wordStat(text) {
return text.split('').filter(function(letter){
return (letter > '\u3040' && letter < '\u4DBF') || (letter > '\u4e00' && letter < '\u9faf');
}).reduce(function (stat, word) {
if (!stat[word]) stat[word] = 0;
stat[word]++;
return stat;
}, {});
}
var input = document.querySelector('#input');
var output = document.querySelector('#output');
input.addEventListener('keyup', function () {
output.value = JSON.stringify(wordStat(input.value), 2, 2);
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句