Thanks Dan,
I tried your script and it generated an error. It reads "names,line2: TypeError: names.filter is not a function"
This is what I plugged in, they are the actual field names I used.
var names = [Field("RM1Name"), Field("RM2Name"), Field("RM3Name"), Field("RM4Name")];
return names.filter(Boolean).join(", ").replace(/^(.*)(, )(.*?)$/, "$1, and $3");