# Символьные классы Рассмотрим задачу -- есть телефонный номер `"+7(903)-123-45-67"`, и нам нужно найти в этой строке цифры, а остальные символы нас не интересуют. **Для поиска символов определённого вида, в регулярных выражениях предусмотрены "классы символов".** [cut] Класс символов -- это, в первую очередь, специальное обозначение. Например, в данном случае нам нужен класс "произвольная цифра", он обозначается `\d`. Это обозначение вставляется в паттерн наравне с остальными символами. При поиске под него подходит любая цифра. Пример ниже ищет все цифры в строке: ```js //+ run var str = "+7(903)-123-45-67"; var reg = /\d/g alert( str.match(reg) ); // 7,9,0,3,1,2,3,4,5,6,7 ``` Есть и другие классы. Самые полезные:
+7(903)-123-45-67
только цифры.
Есть два способа сделать это.
1-5
и 1 - 5
почти идентичны.
Но в регулярных выражениях **пробел - такой же символ, как и другие**.
Поиск ниже не сработает, т.к. не учитывает пробелы вокруг дефиса:
```js
//+ run
alert( "1 - 5".match (/\d-\d/) ); // null, нет совпадений!
```
Поправим это, добавив в паттерн пробелы:
```js
//+ run
alert( "1 - 5".match (/\d - \d/) ); // работает, пробелы вокруг дефиса
```
В регулярные выражения также не надо вставлять лишние пробелы. Все они имеют значение:
```js
//+ run
alert( "1-5".match( /\d - \d/ ) ); // null, так как в строке 1-5 нет пробелов
```
[/warn]
Особым классом символов является точка `"."`.
**В регулярном выражении, точка "."
обозначает *любой символ*, кроме перевода строки**:
```js
//+ run
var re = /CS.4/;
alert( "Стандарт CSS4".match(re) ); // найдено "CSS4"
alert( "Сталь CS-4".match(re) ); // найдено "CS-4"
alert( "CS 4".match(re) ); // найдено "CS 4", пробел тоже символ
```
Обратим внимание -- точка означает именно "произвольный символ".
То есть какой-то символ на этом месте в строке должен быть:
```js
//+ run
alert( "CS4".match (/CS.4/) ); // нет совпадений, так как для точки нет символа
```