Регулярное выражение для захвата только цифр после знака доллара

#javascript #regex

#javascript #регулярное выражение

Вопрос:

Используя Javascript, есть ли способ захватить только цифры после знака доллара?

Пример текста:

«2000 Toyota Corolla — 1300 долларов»

Я хочу, чтобы конечный результат был просто 1300 не $1300

Комментарии:

1. /$[d] /g .. затем удалите $ .

2. @Mr_Green — У нас есть группы захвата не просто так..

Ответ №1:

Вот пример того, что вы можете сделать:

 var str = "2000 Toyota Corolla - $1300";
var n = str.match(/$(d )/);
console.log(n[1]); // 1300
  

Вот скрипка

Комментарии:

1. Потрясающе! Я думаю, что мне не хватало всей концепции группы захвата. Я захватывал всю строку, а затем получал смещение подстроки на 1 символ, но это намного эффективнее.

2. ДА… n[0] будет полным совпадением, а затем n [1], n [2] и т.д. Будут разделами в скобках (если таковые имеются)

Ответ №2:

Есть несколько решений:

  • Если вы хотите захватить цифры: $(d )
  • Если вы хотите, чтобы все совпадение соответствовало только цифрам: (?<=$)d (lookbehind недоступен в JS)

Комментарии:

1. Поиск регулярных выражений в JavaScript?!

2. Извините за это, я должен был более четко заявить, что это для JS.

Ответ №3:

Следующее регулярное выражение должно выполнить эту работу:

 /$(d )/
  

Комментарии:

1. зачем вам нужна [^$]* часть? Просто экранируйте доллар, чтобы это не означало конец строки.

2. @MightyPork — Это правда. Должно быть, я наполовину спал! Tks.