javascript – 如何为字符串数组实现.indexof?

如何简化以下代码?我怎样才能摆脱if语句?我想强调ajax响应中的一些行.现在我有两个字符串要比较=两个ifs.这个数字会增加,所以我想以其他方式这样做 – 使用需要突出显示的字符串数组,以防字符串是data_array元素的一部分.

我更喜欢javascript中的解决方案,但jQuery也可以.

    data_array=data.split('<BR>');
    for(var i=0, len=data_array.length; i < len; i++){
        if (data_array[i].indexOf('Conflict discovered') >= 0){
            data_array[i]="<span class='red'>"+data_array[i]+"</span>";
        }   
        if (data_array[i].indexOf('Syntax error') >= 0){
            data_array[i]="<span class='red'>"+data_array[i]+"</span>";
        }   
    }
    data=data_array.join('<BR>');
最佳答案
根据需要向数组添加更多元素:)

data.replace( /<br>/ig, '\n' ).replace(
    new RegExp( '^(.*(?:' + [
          'Conflict discovered'
        , 'Syntax error'
    ].join( '|' ) + ').*)$', 'gm' )
, '<span class="red">$1</span>' ).replace( /\n/g, '<br>' );

说明:

>替换< br>带换行符的标签
>制作正则表达式:^(.*(?:冲突发现|语法错误).*)$
>环绕匹配< span class =“red”> …< / span>
>将换行符改回< br>标签

转载注明原文:javascript – 如何为字符串数组实现.indexof? - 代码日志