我正在用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
但是对于向后查找,只需将向后更改为true,就只能找到每行的第一个元素。
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 //首先?d,然后?a !! ?c和?b被跳过 ?d
向后查找以便检索所有实例的正确方法是什么?
您的正则表达式未命中g
标志。使用editor.find("\\?\\w+\\b", ...)
并让ace创建正则表达式或使用editor.find(/\?\w+\b/g, ...)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句