How do you limit property value without constraints?
You can use a driver to do that:



Right click on the X location in the object's property panel and choose "manually create later (single)".



Now open a view with the graph editor (1)

Set it to drivers mode (2)

Select the X Location on your object (3)

Make the right panel appear (4) N, choose the driver tab, set the type to "scripted expression", check "use self" so that we can use object's own data. For instance here X location is "self.location[0]".

Then enter the wanted expression. To be between 0 and 1, type: min(1,max(self.location[0],0)).