regexp drupal shipping кавычки ubercart почтовые индексы

надеюсь, кто-то может мне помочь.

Я новичок в регулярном выражении...

Я создаю коммерческий сайт для местного цветочного магазина. Они предлагают бесплатную почтовую доставку в пределах района (почтовые индексы CM11 и CM12), и я хочу установить фиксированные цены на дополнительные расстояния в радиусе до 15 миль (они не доставляют за пределы 15 миль).

Стоимость доставки 1

  • Я создал «бесплатную почтовую доставку» с условием регулярного выражения, что почтовый индекс должен быть CM11 или CM12:
  • cm1[1]|cm1[2]
  • Это работает, как и ожидалось, и показывает бесплатную доставку, если почтовый индекс начинается с CM11 или CM12.

Стоимость доставки 2

  • Я создал тариф на доставку «местной доставки» с указанными ниже условиями (это показывает все почтовые индексы в радиусе 15 миль)
  • cm[1-5]|cm1[3-7]|cm99|ig[2-3]|ig[6-7]|me3|rm[1-9]|rm1[0-9]|rm20|ss0|ss1[1-7]|ss2|ss22|ss[4-9]|ss9[9]

Проблема / вопрос, который у меня есть, заключается в том, как скрыть параметр «местная доставка» от появления, когда пользователь вводит почтовый индекс CM11 или CM12. Они должны видеть только бесплатную доставку или забрать в магазине (не третий вариант местной доставки)

Вы можете увидеть на моем сайте (если вы добавите что-то в корзину и проследите за процессом оформления заказа, поэкспериментируйте с почтовым индексом и посмотрите, как изменятся варианты доставки) - http://techyhelp.uk/florist/catalog/5


person user2685457    schedule 07.01.2017    source источник
comment
Извините, правила, которые сработали, указаны выше. Если почтовый индекс CM11 CM12 (в Billericay), показать бесплатную почту: cm1[1]|cm1[2] Если почтовый индекс любой из этих других (в пределах 15 миль от Billericay), показать вариант местной почты: cm[1-5]| cm1[3-7]|cm99|ig[2-3]|ig[6-7]|me3|rm[1-9]|rm1[0-9]|rm20|ss0|ss1[1-7]| ss2|ss22|ss[4-9]|ss9[9] Затем я попытался добавить условие (и/или я не смог заставить ни одно из них работать), говоря что-то вроде: ^cm11|^cm12 Ничто из того, что я пробовал, кажется работать, я еще не дал другим комментаторам предложение пойти Спасибо   -  person user2685457    schedule 08.01.2017


Ответы (2)


используйте отрицательный прогноз в регулярном выражении "местная доставка", чтобы отфильтровать "cm12" и "cm11". ":

^(?!cm1[12]$)(cm[1-5]|cm1[3-7]|cm99|ig[2-3]|ig[6-7]|me3|rm[1-9]|rm1[0-9]|rm20|ss0|ss1[1-7]|ss2|ss22|ss[4-9]|ss99)$
person Scott Weaver    schedule 07.01.2017

sweaver2112 - отлично сработало, спасибо.

Итак, ответ на мой вопрос получен:

используйте отрицательный просмотр в регулярном выражении «местной доставки», чтобы отфильтровать «cm12» и «cm11»:

^(?!cm1[12]$)(cm[1-5]|cm1[3-7]|cm99|ig[2-3]|ig[6-7]|me3|rm[1-9]|rm1[0-9]|rm20|ss0|ss1[1-7]|ss2|ss22|ss[4-9]|ss99)$

person user2685457    schedule 08.01.2017