恐怕这将是一个非常挑剔的问题——而且我觉得这不可能。
情况
我需要有一个文本区域,其中包含某些单词和短语的高亮(一些 css 效果)。以前我已经使用editarea进行了这项工作-但是由于它是一个死项目,因此出现了越来越多的问题,因此我正在尝试使用替代的更当前的编辑器-Ace。
问题
我目前有 ace 使用自定义模式突出显示单个单词的集合,但是与正则表达式匹配,这些短语已经证明超出了我的范围(到目前为止)。
相关模式代码 - 如下所示:
var highlightWords = "word1|word2|word3|phrase one|phrase number two|etc";
var keywordMapper = this.createKeywordMapper({
"highlightWords": highlightWords
}, "identifier", true);
this.$rules = {
"start" : [
{
token : keywordMapper,
regex : "[a-zA-Z0-9_$][a-zA-Z0-9_$]*\\b"
},{
token : "text",
regex : "\\s+"
}]
我尝试匹配 2 个单词的短语如下(没用)(还尝试通过添加带有 {2} 等的副本来匹配更长的条目)
regex : "[a-zA-Z0-9_$][a-zA-Z0-9_$]*(?:\\s[a-zA-Z0-9_$][a-zA-Z0-9_$]*){1}\\b"
任何人有任何想法让 ace 工作 - 或任何更简单的实时编辑单词和短语突出显示的替代方案?