繁体   English   中英

Ace js替换文字

[英]Ace js replace text

我遇到了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">

得到它了! 这应该是replace语句:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM