Sterling has fallen to a 31-year low against the dollar and hit a five-year low against the euro on fears of a hard exit by Britain from the EU and prime minister Theresa May’s comments on the impact of loose monetary policy which some saw as a thinly veiled attack on the Bank of England.