support substring, change function delimiter to |