王牌编辑怎么找倒退?

时间:2014-06-12 08:52:34

标签: javascript regex ace-editor

我在javascript中与Ace编辑器挣扎。 我的前进功能正常:

var selectionRange = editor.getSelectionRange();
var res = editor.find(/\?\w+\b/, { backwards: false, start: selectionRange, wrap: true, caseSensitive: false, wholeWord: false, regExp: true});

当我在多行上有多个令牌时,它会在我进行多次搜索时按顺序查找它们。

?a ?b ?c  // First  ?a, then ?b, then ?c, then ?d
?d

但是为了向后寻找,只需向后改变为真,它只会找到每一行的第一个元素。

var selectionRange = editor.getSelectionRange();
var res = editor.find(/\?\w+\b/, { backwards: true, start: selectionRange, wrap: true, caseSensitive: false, wholeWord: false, regExp: true});
?a ?b ?c  // First  ?d, then ?a !! ?c and ?b are skipped
?d

找回所有实例的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

你的正则表达式错过g标志。使用editor.find("\\?\\w+\\b", ...)并让ace创建正则表达式或使用editor.find(/\?\w+\b/g, ...)