It might help if we replace the variable #x# in #f(x)# with a different variable than the one used in #g(x)#. (We can do this because #x# is just an arbitrary place holder). Suppose for example we write:
#color(white)("XXX")f(color(red)(w)) = 1/(color(red)(w)+1)#
Then it might be easier to see how we can replace
#color(white)("XXX")color(red)(w)color(white)("XXX")# with #color(white)("XXX")color(blue)(g(x))#
#color(white)("XXX")f(color(blue)(g(x))) = 1/(color(blue)(g(x))+1)#
#color(white)("XXXXXXX")=1/(color(blue)(2/(2x-1))+1)#
#color(white)("XXXXXXX")=1/((2+2x-1)/(2x-1))#
#color(white)("XXXXXXX")=(2x-1)/(2x+1)#
The #f(g(x))#is defined for all Real values of #x# for which
#color(white)("XXX")2x+1 !=0#
#color(white)("XXX")x!=-1/2#
That is, the Domain of #f(g(x))# is #RR-{-1/2}#
#color(white)("XXX")#(or, if you prefer) #(-oo,-1/2)uu(-1/2,+oo)#
One way to determine the range is to ask: "Is there any value, #c# for which #(2x-1)/(2x+1) = c# is impossible?"
#color(white)("XXX")2x-1 = c(2x+1)#
#color(white)("XXX")2x-2cx= c+1#
#color(white)("XXX")x = (c+1)/(2(c-1))#
This equation is clearly undefined if #c=1#
Therefore the Range of #f(g(x))# is
#color(white)("XXX")RR-{1}#
#color(white)("XXX XX")# (...or, #(-oo,1)uu(1,+oo)#)
This can also be seen from the graph of #(2x+1)/(2x-1)#
graph{(2x-1)/(2x+1) [-5.546, 5.55, -2.773, 2.774]}