我遇到了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">
答案 0 :(得分:4)
GOT IT! 这应该是替换声明:
editor.session.replace(editor.selection.getRange(), result);