Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярное выражение: узнать количество цифр. (https://javascript.ru/forum/misc/36003-regulyarnoe-vyrazhenie-uznat-kolichestvo-cifr.html)

foker 28.02.2013 15:12

Регулярное выражение: узнать количество цифр.
 
Как с помощью регулярных выражений можно узнать количество цифр в строке? Не могу разобраться.. Читал в учебнике, но там все не то

ksa 28.02.2013 15:15

Цитата:

Сообщение от foker
Как с помощью регулярных выражений можно узнать количество цифр в строке?

Как вариант...
- убрать все цифры
- взять разность длин оригинала и строки без цифр

foker 28.02.2013 15:18

Хорошая идея))
А можно создать новую сроку без цифр с помощью регулярок? или как это сделать?

ksa 28.02.2013 15:37

Цитата:

Сообщение от foker
А можно создать новую сроку без цифр с помощью регулярок?

Именно с их помощью и делать. :)

Цитата:

Сообщение от foker
как это сделать?

Как вариант...

var str='sdf23kdgbjk231890njsfjk0-sdfasdjkldfs';
var i=str.length-str.replace(/\d/gm,'').length;
alert('Количество цифр в строке - '+i+'шт.');

rgl 28.02.2013 15:37

var s = "32hj478fh39djdhd938rrh34r";
var n = s.match( /\d/g );
n = n ? n = n.length : 0;
alert( n );

rgl 28.02.2013 15:42

ksa,
var str='sdf23kdgbjk231890njsfjk0-sdfasdjkldfs';
var i=str.replace(/\D+/g,'').length;
alert('Количество цифр в строке - '+i+'шт.');

ksa 28.02.2013 15:52

rgl, это лучше :yes:

Deff 01.03.2013 01:18

var str='sdf23kdgbjk231890njsfjk0-sdfasdjkldfs';
alert(str.split(/\d/).length-1)

rgl 01.03.2013 11:10

Deff,
Непереносимо. В IE 6 выдает 3 а не 9. Я понимаю что IE6 сейчас никто не пользуется, но все-таки лучше когда код работает везде одинаково.

rgl 01.03.2013 22:40

Цитата:

Сообщение от Deff (Сообщение 238073)
var str='sdf23kdgbjk231890njsfjk0-sdfasdjkldfs';
alert(str.split(/\d/).length-1)

Вот что говориться про split в книге "javascript: The Good Parts"

Цитата:

Сообщение от Douglas Crockford
There are some special cases to watch out for.
.....................
Some implementations suppress empty strings in the output array when the separator is a regular expression:

var f = '|a|b|c|'.split(/\|/);
// f is ['a', 'b', 'c'] on some systems, and
// f is ['', 'a', 'b', 'c', ''] on others



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