立陶宛字母在xkcd的简单作者(Ace编辑器)中将文本拆分为单词

时间:2015-10-19 17:21:32

标签: javascript split editor ace-editor words

我偶然发现了一个工具,它检查文本中使用的单词是否来自前1000个最常用的单词(英文,或者可能基于某种数据库) - http://xkcd.com/simplewriter/

我非常感兴趣它是如何构建的,我很想知道,为什么ąčęėįšųūž等立陶宛字符被视为字边界

正如我所看到的,charset设置为UTF-8,所以这些字母不应该被误处理 我正在考虑为立陶宛语建立一个类似的工具,并且知道单词分割的标准或者Ace编辑器代码的哪个部分是非常有用的。

Ace编辑器代码:https://github.com/ajaxorg/ace-builds/blob/master/src/ace.js

1 个答案:

答案 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]+"
    }
]