- From: C. M. Sperberg-McQueen <cmsmcq@blackmesatech.com>
- Date: Tue, 12 Sep 2017 12:38:33 -0600
- To: Steven Pemberton <Steven.Pemberton@cwi.nl>
- Cc: "C. M. Sperberg-McQueen" <cmsmcq@blackmesatech.com>, XForms <public-xformsusers@w3.org>
On Sep 12, 2017, at 3:43 AM, Steven Pemberton <Steven.Pemberton@cwi.nl> wrote: > While we're at it, since it is a regularly occurring field in forms, > how about adding a telephone number type? > I went looking for suitable standards to reference, and I found > this: > E.123 : Notation for national and international telephone > numbers, e-mail addresses and web addresses > http://www.itu.int/rec/T-REC-E.123-200102-I/en > This is actually about how to represent telephone numbers on printed > materials, but seems usable. > It doesn't give a formal syntax, only examples and descriptions, > from which I extract the following syntax: > telephone: international | local. > international: "+" digits+ > local: prefix? digits+ > prefix: "(" digits+ ")" > digits: digit (spacing digit)? > digit: ["0"-"9"] > spacing: " " | "-" > However, looking at > ttps://en.wikipedia.org/wiki/National_conventions_for_writing_telephone_numbers > some countries seem to expect to be able to bracket the area code > even in an international number, In some business cards in my collection, parentheses are used not around an area code but around the country code, sometimes with the leading "+" inside the parentheses. A card (from someone in the EU bureaucracy — which I expect means the pattern is not idiosyncratic to one individual has: (+352) 999 99-99999 Here and elsewhere 9s replace some digits, in the interests of data privacy. Other examples of this pattern (i.e. "(" "+"? country-code ")") include numbers in the Czech Republic and (with no plus sign) Canada. (+420) 999 999 999 (1) 905 999 9999 Sometimes parentheses are used around a part of the number used in some cases but not in others. In all the cases I remember seeing, it’s a zero between the country code and the in-country number; the parentheses appear to mean “when calling internationally, omit the zero, and when calling within the country omit the country code and include the zero”. E.g. +44 (0) 9999 999999 I think I have seen this most often in German phone numbers, but the examples in my collection of business cards include ones from the UK, the Netherlands, and Sweden, as well (and most of my German cards don't use this pattern, which tells me something but I'm not sure what). > so we should be a bit laxer; for instance: > telephone: prefix? area? digits+ > prefix: "+" digits+ > area: "(" digits+ ")" > digits: digit (spacing digit)? > digit: ["0"-"9"] > spacing: " "+ | "-" > I think this regexp covers it: > "+"? digs+ ("(" digs+ ")" digs+)? > where: > digs: [0-9] ("-" [0-9])? > and after every terminal there may follow spaces. My collection of business cards includes examples with the following characters used as separators in addition to parentheses, blank, and ‘-‘: . (i.e. full stop) · (i.e. mid-dot) / “ “ (i.e. two blanks, or extra-wide blank) | I don’t know how important it might be to support such variations. As far as I know, they have no well established meaning, although in my examples / is used only (without white space) between the area code and the local number and | is sometimes used only (with white space on either side) between the country code and the in-country number (and in other cases as the sole separator character) > That produces this monstrosity: > <pattern value="^\ *\+?([0-9]\ *(\-\ *[0-9]\ *)?)+(\(([0-9]\ *(\-\ *[0-9]\ *)?)+\)\ *([0-9]\ *(\-\ *[0-9]\ *)?)+)?\ *$"/> > which you can try out here (scroll to the bottom): http://homepages.cwi.nl/~steven/forms/tests/email.xml > Let me know if you find cases that don't work. In addition to the examples given above (some of which work and others of which don't), some cards in my collection have numbers with the patterns: 800,999.9999 x349 (1) 905 999 9999 x99999 If extensions are part of a number, these need to work; if not, not. Also: it appears to be a consequence of the regex that any two hyphens must be separated by at least two decimal digits. So the following Czech number attested in my collection is legal (it appears that '2' is one of the area codes for Prague) +420 (2) 9999 9999 and so is a number with just blanks: +420 2 9999 9999 but the following variant is not legal: +420-2-9999-9999 I have not seen anything with that last illegal pattern in my collection, but the other examples in the collection do provide plenty of examples of (1) separators before and after area codes, (2) use of whitespace as the only separator, and (3) use of hyphen as the only separator. So I am inclined to think it might appear in Real Life. Do any telephone systems in the world still use lettered exchanges? The first telephone number I learned as a child began not "366" but "EM-6" or "Emerson 6". If that convention is still in use anywhere, letters will be needed to represent it. And of course many commercial organizations use numbers that spell out words; the phone-in number for the quiz show "Whad'Ya Know" (now defunct), which ran on public radio stations in the U.S. for thirty years, was 1-800-WHA-KNOW. Do such numbers need to be supported? To try to boil it down, the following number patterns are not supported by the regex given; whether they should be is in each case a policy question: a (+352) 999 99-99999 b 999.999.9999 c 0711/9999-999 d 613 999-9999 (two blanks or one-em space after area code) e +33 | 99 99 99 99 f 800,999.9999 x349 g (1) 905 999 9999 x99999 h +420-2-9999-9999 i EM6-9999 j 1-800-WHA-KNOW The following number patterns are supported (but use parentheses to enclose something other than an area code) z (1) 905 999 9999 y +44 (0) 9999 999999 Pattern h seems plausible but is not attested in the collection of business cards I examined; patterns i and j are not attested but specifications of phone numbers in this form are reasonably well attested (though for pattern i all the attestations may be decades old by now). I thank you for an entertaining couple of hours. (The project leader to whom I will explain in 45 minutes that I got nothing done on that project this morning because I was thinking about telephone numbers may however be less inclined to thank you. Oh, well.) ******************************************** C. M. Sperberg-McQueen Black Mesa Technologies LLC cmsmcq@blackmesatech.com http://www.blackmesatech.com ********************************************
Received on Tuesday, 12 September 2017 18:39:12 UTC