Чи може хто-небудь допомогти мені зрозуміти, чому наступні повернення "$123,00"
і ні "$123,000"
?
var string = "$123,000 word word";
string.match(/^$[d|,]+(?!s)/g)
// "$123,00" not "$123,000"
Будемо дуже вдячні за те, щоб допомогти йому повернути "123 000 доларів"
Відповіді:
4 для відповіді № 1Через твій погляд на голову. Коли він просунувся до останнього 0, збіг оглядача збігається, і регулярний вираз закінчується. Таким чином, він повинен відступити до другої 0. Здається, ви, мабуть, хочете:
"$123,000 word word".match(/^$[d,]+b/)[0]
#=> "$123,000"
1 для відповіді № 2
Джон, чому ти хочеш мати негативний оглядзатвердження, якщо ви хочете, щоб вираз повернув лише "123 000 доларів"? Крім того, я думаю, ви неправильно зрозуміли поняття негативного вигляду, який стверджує, що те, що безпосередньо передує поточній позиції в рядку, не є пробілом (від вашого запитання), а це означає, що він буде рубати рядок починаючи з символу перед пробілом. Для отримання додаткової інформації ви можете звернутися до http://www.rexegg.com/regex-lookarounds.html або ви можете перевірити та налагодити ваш регулярний вираз в https://regex101.com/ який має деяке пояснення щодо вашого регулярного виразу.