Установка правильного регулярного выражения - PullRequest
0 голосов
/ 06 декабря 2018

У меня проблема с моим регулярным выражением, мне просто нужно указать только цену продуктов из этой строки, я использовал это регулярное выражение, но оно мне не помогло, кто-нибудь может это исправить?Спасибо

Слово, из которого мне нужно только 69

LEUWIN 4XL CHF 69 .–

моя попытка:

var re = /[0-9]{2}/;

Я беру это изэто поле (рисунок ниже)

enter image description here

Это работает для меня во всех случаях, кроме этого

enter image description here

До сих пор я использовал это регулярное выражение в функции, но теперь я читаю только первое число, поэтому я должен заменить, в противном случае цена и число всегда одинаковы

function calculateSumWithInput(e) {
  var re = /\d+/;
  var value = re.exec(e.target.value);
  if (value && !isNaN(value) && Number(value) === parseInt(value, 10)) {
    sum = parseInt(value, 10);
    finalInput.value =  "CHF " + sum + ".–";
  }
}

спасибо всем за помощь

Ответы [ 3 ]

0 голосов
/ 06 декабря 2018

Вы должны соответствовать коду валюты, который всегда начинается с трех символов в верхнем регистре ([A-Z]{3}).

Затем следует хотя бы число, описывающее целую часть (\d+).

После точки (\., мы должны избегать точки, так как это специальный символ в регулярном выражении).

Окончание с десятичной частью (\d+) или тире -.

Это оставляет нам:

/[A-Z]{3} \d+\.(\d+|-)/

В любом случае, при создании регулярного выражения важно дать некоторую информацию о том, какой именно шаблон вы хотите сопоставить.

0 голосов
/ 06 декабря 2018

Для извлечения цифр , за которыми следует .–.Попробуйте:

\d+(?=\.\–)
0 голосов
/ 06 декабря 2018

Судя по вашему примеру, я бы предложил использовать это регулярное выражение:

 /.*(CHF \d+).*/

Вам нужно проверить его, а затем получить доступ ко второму элементу массива, который будет выводом match.Предполагая, что ввод является переменным текстом, а вывод должен быть сохранен в переменной цене:

if(/.*(CHF \d+).*/.test(text)) price = text.match(/.*(CHF \d+).*/)[1];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...