Splunk-Javascript与XML
我使用xml编码开发了仪表板。在XML中,我引用了javascript XML: 我将字段中的单词输入作为highlighttoken传递 Javascript: 我正在获取单词,并在XML中引用的所有表格中进行搜索。我可以搜索单个单词。但是我想搜索多个用逗号分隔的单词字符串。请找到下面的代码并帮助我使用javascript 示例:如果我搜索关键字为“Splunk”,它将高亮显示,但如果搜索关键字为“Splunk,web,access”,它将不会显示任何内容 XML:Splunk-Javascript与XML,javascript,xml,splunk,Javascript,Xml,Splunk,我使用xml编码开发了仪表板。在XML中,我引用了javascript XML: 我将字段中的单词输入作为highlighttoken传递 Javascript: 我正在获取单词,并在XML中引用的所有表格中进行搜索。我可以搜索单个单词。但是我想搜索多个用逗号分隔的单词字符串。请找到下面的代码并帮助我使用javascript 示例:如果我搜索关键字为“Splunk”,它将高亮显示,但如果搜索关键字为“Splunk,web,access”,它将不会显示任何内容 XML: 突出显示文本 -5m@m
突出显示文本
-5m@m
现在
搜索词
喷溅*
搜索词
$highlightToken$
索引=_内部
|统计数据按源类型计数
$1.5$
$1.5最新$
没有一个
控件
索引=_内部
|统计数据按源类型计数
|总目5
$1.5$
$1.5最新$
没有一个
控件
索引=_内部
|统计数据按源类型计数
|总目5
$1.5$
$1.5最新$
没有一个
控件
索引=\u内部sourcetype=“splunk”
|统计数据按源类型计数
|总目5
$1.5$
$1.5最新$
没有一个
控件
索引=_内部
|统计数据按源类型计数
|总目5
$1.5$
$1.5最新$
没有一个
控件
Javascript |:
require([
"underscore",
"jquery",
"splunkjs/mvc",
"splunkjs/mvc/searchmanager",
"splunkjs/mvc/tableview",
"splunkjs/mvc/simplexml/ready!"
], function (_, $, mvc, SearchManager, TableView) {
var defaultTokenModel = mvc.Components.get("default");
// var strHighlightText = ""
var strHighlightText = defaultTokenModel.get("highlightToken");
var customCellRenderer = TableView.BaseCellRenderer.extend({
canRender: function (cell) {
return cell.field !== "_time";
},
render: function ($td, cell) {
var strText = cell.value;
if (strHighlightText !== "*" && strHighlightText !== "") {
var regEx = new RegExp(strHighlightText, "gi");
strText = strText.replace(regEx, '<b style="background:#4dff4d;">$&</b>');
}
$td.addClass('string').html(_.template(strText));
}
});
function highlightTable() {
var maxCount = 6;
for (i = 0; i < maxCount; i++) {
var tableItem = mvc.Components.get("highlightTable" + i);
if (typeof (strHighlightText) !== "undefined" && typeof (tableItem) !== "undefined") {
var search = mvc.Components.get("highlightSearch" + i);
if (search !== undefined) {
console.log("highlightSearch:", i)
search.startSearch();
}
console.log("highlightToken:", strHighlightText, " tableId:", i)
tableItem.getVisualization(function (tableView) {
tableView.addCellRenderer(new customCellRenderer());
});
}
}
}
defaultTokenModel.on("change:highlightToken", function (model, value, options) {
if (typeof (value) !== "undefined" || value !== "$value$") {
strHighlightText = value;
highlightTable();
}
});
highlightTable();
});
需要([
“下划线”,
“jquery”,
“splunkjs/mvc”,
“splunkjs/mvc/searchmanager”,
“splunkjs/mvc/tableview”,
“splunkjs/mvc/simplexml/ready!”
],函数(u,$,mvc,SearchManager,TableView){
var defaultTokenModel=mvc.Components.get(“默认”);
//var strHighlightText=“”
var strHighlightText=defaultTokenModel.get(“highlightToken”);
var customCellRenderer=TableView.BaseCellRenderer.extend({
canRender:函数(单元格){
返回cell.field!==“\u时间”;
},
渲染:函数($td,单元格){
var strText=cell.value;
if(strHighlightText!==“*”&&strHighlightText!==”){
var regEx=新的RegExp(strHighlightText,“gi”);
strText=strText.replace(regEx,$&');
}
$td.addClass('string').html(ux.template(strText));
}
});
函数highlightTable(){
var-maxCount=6;
对于(i=0;i
您正在JavaScript中使用正则表达式来匹配突出显示的文本,因此您可以将(Splunk)|(web)|(access)
放入多个短语中进行匹配
或者,如果您真的想使用逗号分隔,则需要修改以下代码部分。您需要首先在逗号处拆分strHighlightText,然后使用每个拆分的单词循环下面的代码
var regEx = new RegExp(strHighlightText, "gi");
strText = strText.replace(regEx, '<b style="background:#4dff4d;">$&</b>');
var regEx=newregexp(strHighlightText,“gi”);
strText=strText.replace(regEx,$&');
您正在JavaScript中使用正则表达式来匹配突出显示的文本,因此您可以将(Splunk)|(web)|(access)
放入多个短语中进行匹配
或者,如果您真的想使用逗号分隔,则需要修改以下代码部分。您需要首先在逗号处拆分strHighlightText,然后使用每个拆分的单词循环下面的代码
var regEx = new RegExp(strHighlightText, "gi");
strText = strText.replace(regEx, '<b style="background:#4dff4d;">$&</b>');
var regEx=newregexp(strHighlightText,“gi”);
strText=strText.replace(regEx,$&');