2017-07-25 69 views
0

我正面临很奇怪的问题,而我试图用正则表达式来比较两个字符串。我也尝试在手表中比较这两个变量,但不幸的是我得到了同样的结果。请帮我找到原因。 我的代码如下,我附上了一个图像,我已经比较了两个变量值。 在以下代码中,例如:如果text="Acworth, GA"search="Acworth, GA"search="acworth, ga"那么final_str不具有<span class="highlight"javascript变量比较行为

如果您有任何建议,我会非常感激。

app.filter('highlight', function($filter, $sce) { 
    return function(text, search, caseSensitive) { 
    if (search == undefined) 
     search = searchDataBrowser; 

    text = text.toString(); 
    search = search.toString(); 

    var reg = new RegExp(search, 'gi'); 

    var final_str = text.replace(reg, function(str) { 
     return '<span class="highlight">' + str + '</span>' 
    }); 

    return $sce.trustAsHtml(final_str); 
    }; 
}); 

enter image description here

+0

尝试'typeof search ==='undefined'' –

+0

代码似乎适用于显示的输入和给定的代码:[jsfiddle](https://jsfiddle.net/3t4zjxvo/)显示' Acworth,GA'作为结果,那么这有什么问题? –

+0

@ ChrisLam-它工作时,你手动赋值给变量,但是当它从过滤器获得输入,它不会返回预期的输出,甚至值与我上面提到的相同。谢谢! –

回答

0

,我发现我的问题的原因。谢谢你们宝贵的时间。 问题出现在第一个字符串值中,而呈现其包含空间的 的输入。这就是为什么你可以检查附加图像,相同的值不相匹配。 我只是从绑定中删除了& nbsp,它适用于我。