Splunk-Javascript与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

我使用xml编码开发了仪表板。在XML中,我引用了javascript

XML: 我将字段中的单词输入作为highlighttoken传递

Javascript: 我正在获取单词,并在XML中引用的所有表格中进行搜索。我可以搜索单个单词。但是我想搜索多个用逗号分隔的单词字符串。请找到下面的代码并帮助我使用javascript

示例:如果我搜索关键字为“Splunk”,它将高亮显示,但如果搜索关键字为“Splunk,web,access”,它将不会显示任何内容

XML:


突出显示文本
-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,$&');