使用javascript比较两个字符串

使用javascript比较两个字符串,javascript,asp.net-mvc-3,jquery,Javascript,Asp.net Mvc 3,Jquery,我不确定我错过了什么,所以我想我会把这个扔到这里。下面是一个无法正常工作的.ajaxComplete方法。我需要将该操作的URL与我希望该代码在执行后执行的操作的URL进行比较 这是一个ASP MVC站点,因此我使用帮助程序从相应的控制器操作中获取URL。然后,我使用settings对象来确定当前Ajax调用源的URL在哪里,我在这个页面上有几个,所以需要使用它来区分 从屏幕截图中可以看到,url变量和settings.url都包含相同的值。我还设置了一个警报来检查每一个的长度,警报返回时,两个

我不确定我错过了什么,所以我想我会把这个扔到这里。下面是一个无法正常工作的.ajaxComplete方法。我需要将该操作的URL与我希望该代码在执行后执行的操作的URL进行比较

这是一个ASP MVC站点,因此我使用帮助程序从相应的控制器操作中获取URL。然后,我使用settings对象来确定当前Ajax调用源的URL在哪里,我在这个页面上有几个,所以需要使用它来区分

从屏幕截图中可以看到,url变量和settings.url都包含相同的值。我还设置了一个警报来检查每一个的长度,警报返回时,两个的长度都是35

然而。。。如果我无法触发警报,此代码通常会失败。我对jQuery比较陌生,所以我想知道这是否是比较两个字符串的正确方法?仅供参考-我最初编写的条件为

if(settings.url == url)
然而,我也没能让它通过

//Tie completion of GetChannel Ajax call to execution of 
//getDrmTerritory instead of using .change event on 
//Market Segment drop down
$(document).ajaxComplete(function (event, xhr, settings) {
    var url = '@Url.Action("GetChannel", "AgentTranmsission")';
    alert(url.length + " " + settings.url.length);
    alert("about to check");
    if (String(settings.url) == String(url)) {
        alert("here");
        var channel = $.trim($('#channelName').text());
        if ($('#AlignmentM:radio').is(':checked')) {
            if ($('#MailingZip').val() != "" && $('#MailingState').val() != "" && channel != "") {
                getDrmTerritory($('#MailingZip').val(), $('#MailingState').val(), channel);
            } else if (channel != "") {
                $('#territoryName').text("");
                $('#Region').val("");
            }
        }
        else if ($('#AlignmentL:radio').is(':checked')) {
            if ($('#LocationZip').val() != "" && $('#LocationState').val() != "" && channel != "") {
                getDrmTerritory($('#LocationZip').val(), $('#LocationState').val(), channel);
            } else if (channel != "") {
                $('#territoryName').text("");
                $('#Region').val("");
            }
        }
    }
    alert("end");
});

编辑

下面是settings.url==在Chrome控制台中计算的url的屏幕截图

下面是测试alerturl.length++settings.url.length的警报


只是一个猜测,但你为什么不试着检查他们的空白。。。我不确定它是否会被算作长度的一部分


我以前也有过类似的问题,下一次我会去检查。此链接可能会有所帮助:

URL中存在拼写错误

请检查一下

传输


TransmSession

为什么不直接比较设置。url==url?您的设置。url==url应该可以工作,您可能在测试中弄糟了什么。alerturl==settings.url;“真的吗?”库齐说他已经测试过了。“是的,我在评论时看到了。”。布拉格。我检查了长度,结果他们是相等的。酷。我的下一个猜测是对该值进行硬编码,并查看该值如何根据url和settings.url进行测试,以查看哪个值偏离了预期的字符串。如果我剪切/粘贴上面控制台中url变量的内容,并将其与settings.url进行比较,它将通过条件。但是,这就是我使用Stringsettings.url==Stringurl条件的原因,我不确定为什么它不起作用。