Sarà che non sono più esperto di te ma io non ci vedo alcun difetto; be certo, se il valore di campo1 è campo2 inutile dire che rimani fregato
Per maggiore sicurezza quindi dovresti fare in modo che ogni valore sia delimitato dalle virgolette "", e poi modifichi la regex di conseguenza.
Infine la regex che hai scritto tu va bene se sei sicuro che ci siano 3 campi; se vuoi generalizzare puoi fare una cosa del genere:
Codice PHP:
var valori = stringa.split(/\s*campo[0-9]+\:\s*/);
valori.shift(); //Elimino il primo elemento che è vuoto
O se vuoi mettere anche le virgolette....
Codice PHP:
var valori = [];
stringa.replace(/\s*campo[0-9]+\:\s*"([^"]+)"/g, function(m, o1) {
valori.push(o1);
})