如何从数组中过滤掉非日语字符
How can I filter out non-Japanese characters from my array?
我目前有这个 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 链接后,您似乎错过了大量字符: 中日韩统一表意文字 - 常见和不常见的汉字 ( 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);
});
相关文章:
- 在JavaScript中输出转义字符
- 不同浏览器中的空白字符正则表达式行为
- Regex匹配除“”之外的所有字符;.js”;
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 使用RegExp查找url中的字符
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 允许在文本框中使用某些字符
- 根据页面的位置突出显示文本中的字符
- 元素的内容必须由格式正确的字符数据或标记组成
- 如何从数组中过滤掉非日语字符
- 如何使用客户端 Javascript 将句子中的日语字符拆分为数组
- 日语字符在 JS 中的转义和解码
- 用于验证字母数字字符、所有国际字符(日语、中文、俄语等)的JavaScript正则表达式
- 日语字符的字符串比较
- 图像路径中的日语字符
- php中日语字符的编码问题
- 日语字符的正则表达式
- 使用JavaScript检查字符串是否包含日语字符(包括汉字)
- 如何在CSS浏览器中使日语字符(长文本)前面的数字出现在一行中