Мне нужна функция для получения только пустых имен параметров запроса href, поэтому я могу заменить их позже значениями из другого массива. После нескольких часов в отсутствии регулярных выражений, вот что я прибегал к:Как получить пустые параметры запроса href?
/**
* getEmptyQueryParams(URL)
* Input: URL with href params
* Returns an array containing all empty href query parameters.
*/
function getEmptyQueryParams(URL)
{
var params = new Array();
var non_empty_params = new Array();
var regex = /[\?&]([^=]+)=/g; // gets all query params
var regex2 = /[\?&]([a-zA-Z_]+)=[\w]/g; // gets non empty query params
while((results = regex.exec(URL)) != null)
{
params.push(results[1]);
}
while((results = regex2.exec(URL)) != null)
{
non_empty_params.push(results[1]);
}
while(non_empty_params.length > 0)
{
for(y=0;y < params.length;y++)
{
if(params[y] == non_empty_params[0])
{
params.splice(y,1);
}
}
non_empty_params.shift();
}
return params;
}
Это работает, но выглядит некрасиво, как ад ... Есть ли лучший способ сделать это? Любая помощь приветствуется.
Это на самом деле Javascript вопрос. Но не волнуйтесь, вы не единственный, кто допустил ошибку: P –
D'oh. Это забавно. – chaos