王牌编辑器查找全部不起作用.需要所有带有 dif 的单词.数组中的值



早安(在某些地区:))

几天来一直试图弄清楚,但仍然不起作用。 在此代码中,我只能用我的行找到光标的确切位置,即文本中的一个单词。但我需要找到所有。文本为 EXW90= 和一个值。值不同。我想移植数组中的所有值 - 仍然不起作用。变量"zeile"给了我所有的行号,其中是开始和结束 - 这适用于perfekt,但在这个开始和结束中,我需要找到所有EXW90=值。谁能帮忙?D 不是必需的(仅作为信息)。

function handle_PulsTeilwert(read){
function getText(tag, startpos, bwards, srange, wrap) {
    if (!wrap) wrap = false;
    var Range = require('ace/range').Range;
    var zeile = [];
    editor.findAll('needle',{
      backwards: bwards,
      wrap: wrap,
      caseSensitive: false,
      wholeWord: false,
      regExp: false,
      range: srange,
      start: new Range (startpos.row, startpos.column, startpos.row, startpos.column)
    });
    editor.$search.set({ needle: tag });
    zeile = editor.$search.find(editor.getSession());
    return zeile;
}
var Range = require('ace/range').Range;
for (var D=1; D<=4; D++) {
    var start = -1, end = -1;
    var cursor = editor.getCursorPosition();
    start = getText('(start_#D'+D.toString()+'_geom)', cursor, true, null);
    end = getText('(end_#D'+D.toString()+'_geom)', cursor, false, null);
    if (start !== null && end !== null)
        if (cursor.row < end.start.row && cursor.row > start.start.row) {
            end.start.row = cursor.row;
            break;
        }
}
if (start === null || end === null) return;
if (read){
    var sRange = new Range (start.start.row, 0, end.start.row, 0);
    var needle = /EXW90=[0-9]b|EXW90=[1-9][0-9]b|EXW90=[1-9][0-9][0-9]b|EXW90=[1-9][0-9][0-9][0-9]b|EXW90=[1-8][0-9][0-9][0-9][0-9]b|EXW90=90000b/;
    var teilPulsWert = getText(needle, cursor, true , sRange); //where is the last EXW90 value
    alert(teilPulsWert[0]); //in this var the first array value, in[1] the next and so on...

获取仅包含我使用的值的真实文本

teilPulsWert.start.column++; 
newTeilPulsWert = editor.session.getTextRange(teilPulsWert).replace('EXW90=', '') ;

感谢您的帮助!

我有一个IDEO来做,它工作得很好

    var contentINcnc = ace.edit("editor"); //read all content in editor
var getContentINcncData = (contentINcnc.getSession().getValue()).split('EXW90=') ; //find all EXW90 an write it in an Array
getContentINcncData[1] = parseFloat(getContentINcncData[1].match(/d+.?d*/gi)[0]); //read out only the values, found in "EXW90=".

这运行完美。我在我的数组中的编辑器中找到了 EXW90 的所有值。

非常适合我!

对我来说,

这有效:-

editor.findAll('needles',{
            wrap: true,
            caseSensitive: true, 
            wholeWord: true,
            regExp: false,
            // preventScroll: true // do not change selection
        })

var range = editor.getSelection().getAllRanges();

然后,范围将具有所有出现的数组列表。

最新更新