To answer your 2 somewhat unrelated questions:
#1
To pick which color range to fade out in a fragment shader I would first calculate the actual color of that fragment in the usual way. Then I would convert that to HSL colorspace. Then I would compare the H part (hue) to a constant and if it was too far away from that constant i would set the color of the fragment to black. You could also fade towards black based on the distance between the color and the constant for a less abrupt effect.
#2
When you go to the club dance floor to bust a move you might not think about the fact that UV light is invisible to us. The only reason we see it is because of an effect called fluorescence, which roughly means that "some materials, when they receive rays of UV light convert that light to another (visible) frequency.
Thus, to render UV light you will probably need an extra color component in your UV active textures and light sources. This is because our eyes preceive colors by separating it (roughly) into the amount of red, green and blue that is in the light, and there is no provision for unseen light in traditional graphics engines. I would investigate if using the alpha channel for this would be feasible in your case (of course this means that it cannot be used for transparency).
I would then paint a "UV mask" and save it as the alpha channel in my texture. Lets assume you have a wood texture for the walls of a basement and then in the alpha channel you make a "REDRUM" in bold letters. Next you create two light sources to your fragment shader, one with UV=0.0 and one with UV=1.0 (UV being your custom light parameter).
To calculate the amount of blue light contributed to the visible light you would do fragment.b+=fragment.a*light.uv; //.a is uv, remember?
If you want different colors for the fluorecence, you would need more than one color channel added.