Con regexp es sencillo:
Código Javascript :
var regexp = new RegExp(/(.*)categoryid=(.*)&(.*)/i),
results = regexp.exec(texto),
id = results[2];
console.log('id = '+id);
// id = 1
Aún así, si en el futuro vas a necesitar mas variables de los parámetros, yo te aconsejaría que a base de splits, te hicieras un objeto con todos los parámetros.
Código Javascript :
var texto = 'http://sitioweb.com/index.php?mact=Products,cntnt01,default,0&cntnt01categoryid=1&cntnt01categoryname=ACEROS&cn',
partes = texto.split('?'),
paramStr = partes[1],
paraArr = paramStr.split('&'),
paraOb = {};
console.log(partes);
/**
Array[
"http://sitioweb.com/index.php",
"mact=Products,cntnt01,default,0&cntnt01categoryid=1&cntnt01categoryname=ACEROS"
]
**/
console.log(paramStr);
/* 'mact=Products,cntnt01,default,0&cntnt01categoryid=1&cntnt01categoryname=ACEROS' */
console.log(paraArr);
/**
Array[
"mact=Products,cntnt01,default,0",
"cntnt01categoryid=1",
"cntnt01categoryname=ACEROS"
]
**/
for (para in paraArr) {
var splitted = paraArr[para].split('=');
paraOb[splitted[0]] = splitted[1];
}
console.log(paraOb);
/**
Object{
mact: "Products,cntnt01,default,0",
cntnt01categoryid: "1",
cntnt01categoryname: "ACEROS",
cn: undefined
}
**/
Espero te haya servido,
Un saludo!.