如何在粘贴到ace.js编辑器中的某些代码中找到一些随机元素? 例如:
editor.find("<[a-z]+>",{regExp:true});
在像这样的XML代码上,语句只会找到第一个元素
<root>
<element1></element1>
<element2></element2>
<element3></element3>
</root>
如何找到随机元素?例如element1,2或3 ...
BTW:ace.js提供了一种查找所有这些元素的方法。
谢谢!
答案 0 :(得分:0)
你可以找到所有范围并随机选择其中一个
editor.$search.setOptions({needle: "<[a-z]+", regExp:true, preventScroll: true});
ranges = editor.$search.findAll(editor.session)
randomRange = ranges[Math.floor(Math.random() * ranges.length)]
if (randomRange)
editor.selection.setRange(randomRange)
或随机选择起始位置
i = Math.floor(Math.random() * editor.getValue().length)
startPos = editor.session.doc.indexToPosition(i)
editor.find("<[a-z]+",{regExp:true, start: startPos})
更新:第二种方法并不好,因为它的分布不均匀