Ace js替换文本

时间:2014-06-16 08:46:48

标签: javascript

我遇到了ace.js.的问题我需要选择一个单词然后插入单词而不出现=。这是我的代码:

editor.$search.setOptions({needle: '[A-z,0-9,_,\-]*="[A-z,0-9,_,\-,.]*"', regExp:true});
            ranges = editor.$search.findAll(editor.session);
            randomRange = ranges[Math.floor(Math.random() * ranges.length)];
            if (randomRange){
                editor.selection.setRange(randomRange);
                var content = editor.session.getTextRange(editor.getSelectionRange());
                alert(content);
                var result = content.replace('=', ''); 
                alert(result);
                editor.replace(result); 
            }

它选择该文本的随机出现。然后我用空格替换=。但是ace.js总是将文本替换为匹配元素的第二次出现,而不是第一次选择。有什么建议? TY!

更新:示例:

<?xml version="1.0"?>
<PurchaseOrder PurchaseOrderNumber="99503" OrderDate="1999-10-20">

选择version =“1.0”,删除=。然后是版本“1.0”

但是现在当我调用函数editor.replace(result)时,它用该文本替换PurchaseOrderNumber =“99503”,然后它:

<?xml version="1.0"?>
<PurchaseOrder version"1.0" OrderDate="1999-10-20">

1 个答案:

答案 0 :(得分:4)

GOT IT! 这应该是替换声明:

editor.session.replace(editor.selection.getRange(), result);