2015-12-04 5 views
0

Я пытаюсь проверить схему xml, предоставив ограничение в xsd. В схеме есть 555-333-4834,444-233-3333, которая может содержать один или несколько телефонных номеров.Regex для списка чисел

Это мое решение:

<xs:element name="PhoneNumber" minOccurs="1" maxOccurs="unbounded"> 
     <xs:simpleType> 
      <xs:restriction base="xs:string"> 
       <xs:maxLength value="14"></xs:maxLength> 
       <xs:minLength value="10"></xs:minLength> 
       <xs:pattern value="^[0-9]{3}(-[0-9]{3})(-[0-9]{4})?"></xs:pattern> 
      </xs:restriction> 
     </xs:simpleType> 
    </xs:element> 

Цель состоит в проверке, если первые три являются цифрами. Я пытался это проверить. Он отлично работает для 1 номера, но не для списка номеров.

+0

Вы можете проверить регулярное выражение с помощью этого веб-сайта https://regex101.com/. Также вы должны знать, что скобки предназначены для создания групп, возможно, это плохо работает. Также вы можете попытаться избежать «-», потому что у вас могут быть проблемы, потому что они также используются для диапазонов букв или цифр. – JuanDYB

+0

Я не получил ** список номеров **. Означает ли это, что он должен принимать 555-333-4834,444-233-3333? Но максимальная допустимая длина кажется только 14. –

+0

Если какой-либо номер телефона - это номера, отличные от США, то это безнадежный план. Неужели даже в США становится все более распространенным явлением для общения с иностранцами? –

ответ

1

Предполагая, что все номера телефонов должны быть именно в формате, который вы публикуемую (NNN-NNN-NNNN), это регулярное выражение будет соответствовать один или несколько, разделенных запятыми (без ведущего/Запятая допускается):

^\d{3}-\d{3}-\d{4}(,\d{3}-\d{3}-\d{4})*$ 

Если ведущий/завершающие запятые должны быть разрешены, картина:

^,?\d{3}-\d{3}-\d{4}(,\d{3}-\d{3}-\d{4})*,?$ 
+0

Спасибо @aaron_world_traveler – Priya

0

Это один делает работу:
^([0-9]{3}-[0-9]{3}-[0-9]{4})(,[0-9]{3}-[0-9]{3}-[0-9]{4})*$

Он работает для одного или нескольких разделенных запятыми номера телефонов.

0

ограничение MaxLength = 14 избежать присутствия более чем одного номера телефона. Кроме того, вы должны изменить шаблон как @aaron_world_traveler и @Paco Abato в своих ответах.

Кстати, с вашей текущей схемой вы можете использовать несколько тегов PhoneNumber с одним номером каждый.

+0

Спасибо, я определенно учтую это @jmad – Priya

Смежные вопросы