Ooh! This is my field of expertise. =) Never use "string" to describe a series of characters, in any user interface element. The exception to this rule, is when the user is expected to be a developer (programmer, analyst, power user, etc.). If any, the user interface should use jargon with which the user is expected to be familiar. When using jargon in the user interface, it should not be so cryptic that a novice user is unable to easily interpret the meaning.
Describe what the string represents. The data type that must be provided should be enforced by the input capturing mechanism (text box, etc.), and/or inferred by the description. Use a date chooser for dates and a text box for names. Date choosers are important; because a date may be entered in various formats -- the date chooser returns a predefined format. If you are having trouble doing so, the user interface must be re-evaluated.
For example:
- First Name (implies alpha characters)
- Password (implies alphanumeric and common punctuation characters)
- Message (implies alphanumeric and common punctuation characters)
- Birth date (implies date format)
- Hours worked (implies integral data)
The reason why "Number, Date, or 'String'" sounds correct, is because the meaning of string is contextual to anyone familiar with its correlation to "a series of characters." For everyone else in the world (likely 99.7% or so of world population), it means "a long piece of fiber".
Side note:
Proper, modern software architecture, particularly MVP, MVC, and MVVM, accommodate interchangeable user interfaces. Using these architectures would allow the same application to have both a "technical" and "non-technical" interface. This is very useful, because the logic and data remain the same, and only a new user interface needs be built. Therefore, an application program could contain both expert and novice interfaces. This could be as simple as displaying definitions of jargon to novice users, and not to experts.