Regex за цена

novakabg
Турист
Турист
Posts: 337
Joined: Fri May 13, 2016 12:29 pm
Contact:

Regex за цена

Post by novakabg » Thu Sep 20, 2018 7:50 am

Здравейте, може ли някой да помогне за regex за цена.
Опитвам се да премахне (лв. ) от текстовете чрез RegEx.

Тука тествам.

https://regex101.com/r/cG6iO8/1

User avatar
deam0n
Web-tourist
Web-tourist
Posts: 3015
Joined: Sat Oct 01, 2005 4:33 pm
Answers: 204
Location: Шопландия
Contact:

Post by deam0n » Thu Sep 20, 2018 8:03 am

А защо не ползваш string.replacе() за да премахнеш лв. ?

https://www.w3schools.com/jsref/jsref_replace.asp

Code: Select all

var str = '100лв. 500лв. 5000лв. 500000 лв.; 
var res = str.replace(/лв./g, "");

joTunkiq
Потребител
Потребител
Posts: 825
Joined: Tue Dec 25, 2012 10:03 am
Answers: 142
Contact:

Post by joTunkiq » Thu Sep 20, 2018 8:03 am

гледам ейтука преди 1 млн. години че съм ползван нещо такова. Разби се регулярния израз е в пъти по-добре, но ако можеш да го направиш по-семпло според мен - защо не. (не съм го пробвал)

[php]
$p = floatval('25.77лв.');
Echo "<br>".$p;

[/php] :idea: :?: :?:

User avatar
deam0n
Web-tourist
Web-tourist
Posts: 3015
Joined: Sat Oct 01, 2005 4:33 pm
Answers: 204
Location: Шопландия
Contact:

Post by deam0n » Thu Sep 20, 2018 8:10 am

Май не му трябва за PHP, гледайки раздела в който пишем :lol: И btw той иска да премахне лв. от текстове, съответно floatval няма да помогне, защото ще премахне целия текст, а не само лв. ..

Code: Select all

floatval&#40;'lorem ipsum 1000 лв. lorem ipsum50 лв. ...'&#41;;
Пак str_replace ще е по-подходящо.

Реално погледнато ако не трябва да replace-ваш някой много забатачен стринг ( като IP примерно, където няма как да се измъкнеш без да го match-неш с regex ), по-добре да се използват replace функциите от гледна точка на производителност.

novakabg
Турист
Турист
Posts: 337
Joined: Fri May 13, 2016 12:29 pm
Contact:

Post by novakabg » Thu Sep 20, 2018 8:21 am

Благодаря за бързите и страхотни отговори.

Проблема е че ми трябва нещо такова:

\d{1,3}(?:[.,]\d{3})*(?:[.,]\d{2})

Обаче за (ЛВ), пробвах това с рублата и lei но с лев не мърда.
Не знам защо, нещо не правя както трябва. :X общо взето ползвам json.
"regex":" тука въвеждам regex",

Извинявам се много просто не намерих раздел.

User avatar
anonimen
Web-tourist
Web-tourist
Posts: 1534
Joined: Mon Jun 11, 2012 6:07 pm
Answers: 163
Location: Parse error: unexpected "}" in /home/index.php on line 26

Post by anonimen » Fri Sep 21, 2018 7:27 am

В линка, който си дал, стрингове с 'лв.' и с 'rub' си работят. Какъв е въпросът?
общо взето ползвам json.
Въпросът беше на какъв език парсваш стринга.

novakabg
Турист
Турист
Posts: 337
Joined: Fri May 13, 2016 12:29 pm
Contact:

Post by novakabg » Fri Sep 21, 2018 9:31 am

Като цяло json, RegEx for Json :)

User avatar
anonimen
Web-tourist
Web-tourist
Posts: 1534
Joined: Mon Jun 11, 2012 6:07 pm
Answers: 163
Location: Parse error: unexpected "}" in /home/index.php on line 26

Post by anonimen » Fri Sep 21, 2018 10:40 am

novakabg wrote:Като цяло json, RegEx for Json :)
Той може да идва и от JSON, и от текстов файл, и от сокет - въпросът е на какъв език ти е програмата. Различните езици имат някои малки разлики в имплементацията.

novakabg
Турист
Турист
Posts: 337
Joined: Fri May 13, 2016 12:29 pm
Contact:

Post by novakabg » Fri Sep 21, 2018 1:36 pm

javascript е просто regex ми бяга като цяло.

:)

User avatar
anonimen
Web-tourist
Web-tourist
Posts: 1534
Joined: Mon Jun 11, 2012 6:07 pm
Answers: 163
Location: Parse error: unexpected "}" in /home/index.php on line 26

Post by anonimen » Fri Sep 21, 2018 4:37 pm

novakabg wrote:javascript е просто regex ми бяга като цяло.

:)
В дадения линк работи както трябва, изглежда, С какъв тестов пример не работи?

Post Reply