Selectively mix shaders based on color input
To pick out similar colors in a spectrum, there has to be a notion of a distance between colors, which more or less makes sense to the eye. One (perhaps naive) way to do it would be just to take the 3D distance between colors in whichever space you are using for comparison. If that's RGB, that would be sqrt(dR*dR + dG*dG + dB*dB). You could put this in a node group:



Starting with the colors in the top left, supposing for the black light effect we generally just saturate the colors a bit. (top right).



Then we can use the RGB-Distance node group to pick out colors similar to examples we've picked.

The bottom left square above shows the output of the top Color Ramp node in the tree below. It's a mask of colors which are quite-like-white in the original (top left) square.



Masks like that can be used as factors to mix between the saturated tiles and the ones we've picked out for special treatment. The top branch picks out whites, and replaces them with a darker blue, and the bottom branch replaces yellowish squares with magenta.



This might do it for you on its own.. but it could be tweaked to place more emphasis on hue, brightness, etc., by changing the definition of distance between colors.

I should point out that to keep things linear, and let me E use an eyedropper to pick colors from the  screen, I've set the color-management in the .blend to Raw, with no sRGB in the display. You will probably want to change that.