Строка формата как британский номер телефона

var o = {  
   "Soap:Envelope":{  
      "_attributes":{  
         "xmlns:Soap":"http://schemas.xmlsoap.org/soap/envelope/"
      },
      "Soap:Body":{  
         "ValidateUser_Result":{  
            "_attributes":{  
               "xmlns":"urn:microsoft-dynamics-schemas/codeunit/UserValidation"
            },
            "return_value":{  
               "_text":"P01"
            }
         }
      }
    }
};

var val = o['Soap:Envelope']['Soap:Body']['ValidateUser_Result']['return_value']['_text'];

console.log(val);
5
задан Richard Everett 23 January 2009 в 14:03
поделиться

3 ответа

Британские номера телефона варьируются по длине от 7 цифр до 10 цифр, не включая начальный нуль. коды "области" могут варьироваться между 2 и обычно 4 (но иногда 5) цифры.

Все таблицы, которые показывают код области и общую длину для каждого префикса числа, доступны с веб-сайта OFCOM. NB: Эти таблицы очень длинен.

Кроме того, нет никакого стандарта для точно, куда пробелы помещаются. Некоторые люди могли бы поместить их в места различия в зависимости от того, как "читаемый" это делает получающийся текст.

12
ответ дан 18 December 2019 в 09:54
поделиться

Я испытал бы желание использовать более трудный подшипник, которые только проверяют минимум переноса; Таким образом, при условии начальный нуль находится в базе данных, псевдо код был бы:

if( phoneNumber.substring(1,1) == "2" )
{
    // 000 0000 0000
}
else if( phoneNumber.substring(1,1) == "1" && (phoneNumber.substring(1,1) == "2" || phoneNumber.substring(3,1) = "1") )
{
    // 0000 000 0000
}
else
{
    // 00000 000000
}

NB. Ваши шаблоны являются немного неправильными 023, является тремя кодами цифры, и 0800 не

1
ответ дан 18 December 2019 в 09:54
поделиться

** Я ищу процедуру, которая форматирует строку чисел как номер телефона в Великобритании. **

Вы можете загрузить базу данных Ofcom, в которой перечислены форматы для каждого диапазона номеров, включая национальные номера только для набора, и выполнить поиск для каждого номера, который необходимо отформатировать. В базе данных перечислены цифры SABCDE и их формат: 0 + 10, 2 + 8, 3 + 7, 4 + 6, 4 + 5, 5 + 5 или 5 + 4 для каждого диапазона.

Есть небольшое число ошибок в базе данных (особенно для кодов 01697 и 0169 77), но они насчитывают менее десяти ошибок из более чем четверти миллиона записей.

Есть четыре файла, охватывающие номера 01 и 02, и отдельные файлы для различных негеографические диапазоны номеров.

Номера 0 + 10 предназначены только для набора номера внутри страны. и пишутся без скобок вокруг части кода области. Код зоны будет 02x для всех номеров 02, 01xx для всех номеров 011x и 01x1 и 01xxx для большинства других номеров 01 (хотя очень маленькое число - около дюжины - будет 01xx xx).

Круглые скобки окружают область кодируйте все остальные номера 01 и 02 (то есть используйте круглые скобки для чисел 01 и 02, где часть местного номера , а не начинается с 0 или 1). Круглые скобки показывают, что местный набор номера возможен в пределах той же области, если опустить цифры, заключенные в круглые скобки.

Номенклатура 2 + 8 показывает код города и длину местного номера, при этом запись 2075: 2 + 8 означает, что номер отформатирован как (020) 75xx xxxx. Помните, что ведущий ноль не «засчитывается» при определении 2 + 8.

** Телефонные номера в Великобритании могут иметь длину от 8 до 12 цифр **

Нет. С 2000 года у большинства из них есть 10 цифр после кода соединительной линии «0». Некоторые из них по-прежнему имеют 9 цифр после кода соединительной линии «0».

Также следует учитывать несколько специальных номеров, таких как 0800 1111 и 0845 4647.

** Коды «зоны» могут варьироваться от 2 до 4 цифр. . **

Коды городов могут варьироваться от 2 до 5 цифр (начальный ноль не учитывается). Для ясности, «020» классифицируется как двухзначный код зоны, поскольку начальный 0 на самом деле является кодом соединительной линии. Существуют также коды городов 011x и 01x1, и большинство других номеров имеют коды городов 01xxx. Последние могут иметь местные номера, состоящие всего из 5 цифр, вместо более широко распространенных 6-значных местных номеров. У очень небольшого числа номеров есть код города 01xx xx, и у них есть местные номера из 5 или 4 цифр.

** Кроме того, нет стандарта для точного размещения пробелов. **

Между частью кода города и частью местного номера для всех номеров 01 и 02 всегда есть пробел.

Также традиционно для кодов города (01xx xx) существует пробел внутри кода города, как показано. Это старые локальные группы обмена, где эта система все еще используется. Другие (более короткие) коды городов не разделяются.

Местные номера с 7 или 8 цифрами разделяются перед четвертой цифрой с конца. Местные номера из 4, 5 или 6 цифр не разделяются. Это относится как к географическим, так и к негеографическим номерам.

Для большинства номеров 03, 08 и 09 номер записывается как 0xxx xxx xxxx.

Некоторые номера 0800 и все 0500 записываются как 0xxx xxxxxx.

Для номеров 055, 056 и 070 номер записывается 0xx xxxx xxxx.

Для номеров мобильных телефонов и пейджера, используйте 07xxx xxxxxx.

** за исключением того, что некоторые люди используют '08000 abc def' вместо '0800 0abc def' **

Это неправильное использование. Имейте в виду, что некоторые номера 0800 имеют 9 цифр после кода соединительной линии 0, в то время как другие имеют 10 цифр после кода соединительной линии 0.

Таким образом, оба 0800 xxxxxx и 0800 xxx xxxx являются правильными.

Номера 0500 используют только 0500 xxxxxx.

Большинство номеров 03, 08 и 09 записываются как 0xxx xxx xxxx.

См. Также: http://en.wikipedia.org/wiki/Local_conventions_for_writing_telephone_numbers#United_Kingdom

2
ответ дан 18 December 2019 в 09:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: