在jQuery上提取并存储字符串文本的部分内容

时间:2021-03-20 18:52:10

I have this string, containing 2 warnings and 3 errors, each warning/error is determined by it's start warning: or error:, and its ending, _ symbol:

我有这个字符串,包含2个警告和3个错误,每个警告/错误由它的启动警告:或错误:及其结尾,_符号决定:

var data="warning:No data found_error:There's no data to display_error:Too many connections_warning:Test not passed:please check spelling_error:Connection lost";

How can I make jQuery extract each error and warning separately? On a structure like this:

如何让jQuery分别提取每个错误和警告?在这样的结构上:

if (data.indexOf("warning:") >= 0){
   var warnings.="<p class='warning'>"+EACHWARNINGHERE+"</p>";}

So that variable warnings would store this values:

所以变量警告会存储这个值:

var warnings="
<p class='warning'>No data found</p>
<p class='warning'>Test not passed:please check spelling</p>"

2 个解决方案

#1


2  

Use split:

var data="warning:No data found_error:There's no data to display_error:Too many connections_warning:Test not passed:please check spelling_error:Connection lost";
var a = data.split('warning:');//first split by `warning:`
var c = [];
var warnings = '';
for(var i in a){
    var b = a[i].split('error:');//now every part split again but by `error:`
    if(b[0]){
        warnings += "<p class='warning'>"+b[0].replace(/_$/,'')+"</p>";
    }
}

Now warnings is:

现在的警告是:

<p class='warning'>No data found</p>
<p class='warning'>Test not passed:please check spelling</p>

#2


0  

split on '_' and then check if the sentences start with 'warning:' or 'error:'

拆分'_'然后检查句子是否以'warning:'或'error:'开头

var sentences = data.split('_')
for (var i=0; i<sentences.length; i++) {
    ver sentence = sentences[i];
    var sentenceType = data.slice(0,data.indexOf(':'));
    var sentenceText = sentence.slice(data.indexOf(':')+1);
    if (sentenceType == 'warning') {
       // add warning element with sentenceText
    }
    else {
       // add error element
    }
}

#1


2  

Use split:

var data="warning:No data found_error:There's no data to display_error:Too many connections_warning:Test not passed:please check spelling_error:Connection lost";
var a = data.split('warning:');//first split by `warning:`
var c = [];
var warnings = '';
for(var i in a){
    var b = a[i].split('error:');//now every part split again but by `error:`
    if(b[0]){
        warnings += "<p class='warning'>"+b[0].replace(/_$/,'')+"</p>";
    }
}

Now warnings is:

现在的警告是:

<p class='warning'>No data found</p>
<p class='warning'>Test not passed:please check spelling</p>

#2


0  

split on '_' and then check if the sentences start with 'warning:' or 'error:'

拆分'_'然后检查句子是否以'warning:'或'error:'开头

var sentences = data.split('_')
for (var i=0; i<sentences.length; i++) {
    ver sentence = sentences[i];
    var sentenceType = data.slice(0,data.indexOf(':'));
    var sentenceText = sentence.slice(data.indexOf(':')+1);
    if (sentenceType == 'warning') {
       // add warning element with sentenceText
    }
    else {
       // add error element
    }
}