I've been using NoScript for a couple of years now but I can't seem to figure out which scripts are safe to allow and most of the time I just temporarily allow all the scripts. Is there a way to check if a script is safe other then running it to find out?
In short, no. Determining if something is "safe" is isomorphic to the halting problem. The best you can do is to execute the script using an agent you regard as safe.
Keep in mind that one class of exploits involves trusted functions doing things they're not supposed to do. Suppose for example that choose your vendor here installed a back door in the "print" function so that if the printed string was 39549235-052-4-234-2-42-3-29q4er-2348-2398 they would also open a connection to NSA headquarters and dump the contents of your hard drive.
Outside of an Anti-Virus program blocking the execution of a known malicious script, not really. Generally this is where user education comes in, and a pinch of common sense is required when choosing what you allow to run on your system.
You could always run the script in a safe environment, and monitor the output. Outside of that, your options are very limited.