我偶然发现了一个工具,它检查文本中使用的单词是否来自前1000个最常用的单词(英文,或者可能基于某种数据库) - http://xkcd.com/simplewriter/
我非常感兴趣它是如何构建的,我很想知道,为什么ąčęėįšųūž等立陶宛字符被视为字边界?
正如我所看到的,charset设置为UTF-8,所以这些字母不应该被误处理 我正在考虑为立陶宛语建立一个类似的工具,并且知道单词分割的标准或者Ace编辑器代码的哪个部分是非常有用的。
Ace编辑器代码:https://github.com/ajaxorg/ace-builds/blob/master/src/ace.js
答案 0 :(得分:1)
ąčęėįšųūž不被视为ace中的单词边界,您可以通过双击其中一个单词来检查
但http://xkcd.com/simplewriter/使用http://xkcd.com/simplewriter/ace/src-min/mode-upwriter.js的自定义模式
不会将它们视为单词字符,并使用/[a-zA-Z]+/
作为正则表达式
this.$rules = {
"start": [
{
"token" : "suffix",
"regex" : "['’][a-zA-Z]+"
},
{
"token" : "allowed",
"regex" : "\\b(?:" + window.__WORDS + ")\\b",
"caseInsensitive": true
},
{
"token" : "disallowed",
"regex" : "[a-zA-Z]+"
}
]