[英]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.