Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярное выражение (https://javascript.ru/forum/misc/19166-regulyarnoe-vyrazhenie.html)

розовый слоник 27.07.2011 19:36

Регулярное выражение
 
Я прочел что в Perl есть замечательная штука как позиционная проверка, а точней сказать вот такие штуки /(?<=...)/ пример /(?<=\d)/
но проблема в том что или я чего то не понимаю или в js не ни какого аналога

кто знает как повторить подобное в js подскажите

а задача состоит в том что бы скажем из строки
1234567890
получить
1 234 567 890

monolithed 27.07.2011 20:14

Цитата:

Сообщение от розовый слоник
но проблема в том что или я чего то не понимаю или в js не ни какого аналога

нет необходимости в этом спецификаторе:

alert('1234567890'.replace(/^\d|\d{3}/g, '$& '));

розовый слоник 27.07.2011 20:16

спс но я уже решил это дело так:)
function replacer(str, p1, p2, offset, s) {
		
		  return p1 + " ";
		}
		
		newString = "1234567890021412414144".replace(/^0*/, '').replace(/(\d)(?=(\d{3})+(?!\d))/g, replacer)
		alert(newString);

розовый слоник 27.07.2011 20:17

кстати у вас не правильная регулярка) поставте дополнительную цыфру и вы увидите проблему

monolithed 27.07.2011 20:25

розовый слоник,
ну так вы не указали, что решение должно быть унифицорованное, поэтому я и предложил вариант под конкретную задачу, а так конечно вот:
alert('12345678904527527852'.replace(/\d(?=(\d{3})+(?!\d))/g, '$& '));


Часовой пояс GMT +3, время: 17:30.