Связано с моим вопросом here.Альтернатива использованию поиска или indexOf
У меня есть заявление JavaScript следующим образом:
<script type="text/javascript">
var u1 = '%pu1=!;';
if (u1.search('NBSLoan|Accept') > -1)
{
var pvnPixel = '<img src="someurl.com"/>';
document.writeln(pvnPixel);
}
if (u1.indexOf('NBSLoan|Refer') > -1)
{
var pvnPixel2 = '<img src="someurl2.com"/>';
document.writeln(pvnPixel2);
}
if (u1.indexOf('DeBSLoan|Accept') > -1) {
var pvnPixel3 = '<img src="someurl3.com"/>';
document.writeln(pvnPixel3);
}
</script>
Учитывая, что переменная u1
макрос, который может содержать любое из следующих значений:
NBSLoan|Accept|PPI+No|48Months
NBSLoan|Refer|PPI+No|48Months
NBSLoan|Accept|PPI+No|48Months
NBSLoan|Refer|PPI+No|48Months
Также помните, что последняя часть (48 месяцев) может измениться, как я могу написать инструкцию JavaScript, которая будет проверять только первую часть строки? то есть ли это «NBSLoan | Accept» и т. д.?
Если вы поставили вышеуказанное утверждение в JSFiddle, да, это действительно работает, но я заверяю вас (в прямом эфире), что это не работает, поэтому я изучаю другие возможности написания этого утверждения. Могу ли я сделать что-то вроде:
if (u1.search(/NBSLoan|Accept/)
? Будет ли это работать даже с шаблоном? На данный момент происходит то, что если u1
равно NBSLoan|Accept
, то оба url1 и url2 запускаются. Что я делаю не так?
Большое спасибо. Я попробую это. Я мог бы, конечно, использовать document.write? – zik
Правильно, это не работает. Я получаю ошибку «незаконного символа» на последнем '}'? – zik
@ Kiz: Хорошо, я отредактировал свой ответ, попробуйте еще раз. Копирование кода из jsFiddle часто оставляет вам невидимый символ в конце кода, который не нравится Javascript. Я понятия не имею, почему и это довольно раздражает. Однако это должно работать. –