使用regexp过滤url中的问号(?)参数并添加?或者&

时间:2011-08-15 18:26:15

标签: javascript regex query-string

我有这个:

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

action变量可能已经有?parameter或者没有。{/ p>

因此,我需要测试操作,如果它已包含?,如果是这样,则附加&搜索。否则我需要使用?search

知道如何以简单的方式解决这个问题吗?

5 个答案:

答案 0 :(得分:4)

var searchString = action + (action.indexOf('?') != -1 ? '&' : '?') + 'search=' + search + '&filter=';

答案 1 :(得分:3)

var searchString = action + ((action.indexOf('?') == -1) ? '?search=' : '&search=');

或者您可以使用jquery Query Plug-in http://plugins.jquery.com/project/query-object

答案 2 :(得分:1)

var startChar = action.indexOf('?') == -1 ? '?' : '&',
    searchString = action +  startChar  + 'search=' + search + '&filter=';

答案 3 :(得分:0)

快速,不是超级可读的方式:

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

答案 4 :(得分:0)

var string = "?somerandonmestuffhere";
alert((string.match(/[?].*/) || ["?" + string])[0])
var string = "somerandonmestuffhere";
alert((string.match(/[?].*/) || ["?" + string])[0])