Используйте regexp, чтобы отфильтровать параметр вопросительного знака (?) В URL и добавить либо? или же & - PullRequest
4 голосов
/ 15 августа 2011

У меня есть это:

var searchString = action +  ?  + 'search=' + search + '&filter='

переменная action может уже иметь ?parameter или не может иметь его.

, поэтому мне нужно проверить действие, если оно ужесодержит ? и, если это так, добавить и искать.В противном случае мне нужно использовать ?search

Есть идеи, как это легко решить?

Ответы [ 5 ]

4 голосов
/ 15 августа 2011
var searchString = action + (action.indexOf('?') != -1 ? '&' : '?') + 'search=' + search + '&filter=';
3 голосов
/ 15 августа 2011
var searchString = action + ((action.indexOf('?') == -1) ? '?search=' : '&search=');

Или вы можете использовать плагин jquery Query http://plugins.jquery.com/project/query-object

1 голос
/ 15 августа 2011
var startChar = action.indexOf('?') == -1 ? '?' : '&',
    searchString = action +  startChar  + 'search=' + search + '&filter=';
0 голосов
/ 15 августа 2011
var string = "?somerandonmestuffhere";
alert((string.match(/[?].*/) || ["?" + string])[0])
var string = "somerandonmestuffhere";
alert((string.match(/[?].*/) || ["?" + string])[0])
0 голосов
/ 15 августа 2011

быстрый, не супер читаемый способ:

var hasQM = (/\?/).test(action);
var searchString = action + (!hasQM ? '?' : '&') + 'search=' + search + '&filter='
...