如果在if内,则javascript修改

时间:2015-06-01 13:22:50

标签: javascript

我之前从未使用过javascript,只需要一些帮助。我有这个:

trait Option[+A] { def get: A }

但是我需要修改它来说明vars.smsmessage是否包含字符串" http:"然后压制vars.devUrl

我已经提出了下面的内容,if if in a work?

if (vars.devUrl != '')
{     
  vars.smsmessage = vars.smsmessage + "\n\n" + vars.devUrl + "\n\n" +     vars.optOut;
}
else
{
   vars.smsmessage = vars.smsmessage + "\n\n" + vars.optOut;
}
delivery.smsParameters.smsContent = vars.smsmessage;

另外应该补充一点,在我上线之前我无法测试这个,因此请求

2 个答案:

答案 0 :(得分:2)

非常接近,但else位于if块之外,您需要在Javascript中使用indexOf来检查一个字符串是否包含另一个字符串,如下所示:

if (vars.devUrl) {
    if (vars.smsmessage.indexOf('http:') > -1) {
        vars.smsmessage = vars.smsmessage + '\n\n' + vars.optOut;
    }  
    else {
        vars.smsmessage = vars.smsmessage + '\n\n' + vars.devUrl + '\n\n' + vars.optOut;
    }
}
else {
    vars.smsmessage = vars.smsmessage + '\n\n' + vars.optOut;
}

delivery.smsParameters.smsContent = vars.smsmessage;

然而,你可以使用像这样的ternary conditional使眼睛更容易:

    var url = vars.smsmessage.indexOf('http:') > -1 ? vars.devUrl + '\n\n' : '';

    vars.smsmessage += '\n\n' + url + vars.optout;

    delivery.smsParameters.smsContent = vars.smsmessage;

答案 1 :(得分:0)

如果我没有弄错的话,对于这个特定的请求,您的初始代码不需要额外的if,只是一个额外的条件:

if (vars.devUrl != '' && vars.devUrl.indexOf('http:') < 0)
{     
  vars.smsmessage = vars.smsmessage + "\n\n" + vars.devUrl + "\n\n" +     vars.optOut;
}
else
{
   vars.smsmessage = vars.smsmessage + "\n\n" + vars.optOut;
}
delivery.smsParameters.smsContent = vars.smsmessage;

因此;基本上,只有当它不为空并且它不包含“http:”时才使用vars.devUrl