Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите перенести регулярное выражение из php в js. (https://javascript.ru/forum/misc/63459-pomogite-perenesti-regulyarnoe-vyrazhenie-iz-php-v-js.html)

veltony 08.06.2016 18:51

Помогите перенести регулярное выражение из php в js.
 
Есть регулярное выражение в php (удаляет номера телефонов из текста), если не трудно,мог-бы кто-нибудь помочь и написать такую же регулярку только на js

$text = preg_replace("/(8|7|\+7){0,1}[- \\\\(]{0,}([9][0-9]{2})[- \\\\)]{0,}(([0-9]{2}[- ]{0,}'.'[0-9]{2}[- ]{0,}[0-9]{3})|([0-9]{3}[- ]{0,}[0-9]{2}[- ]{0,}[0-9]{2})|([0-9]{3}[- ]{0,}''[0-9]{1}[- ]{0,}[0-9]{3})|([0-9]{2}[- ]{0,}[0-9]{3}[- ]{0,}[0-9]{2}))/", "", $text);



С ув.

Coriolan161 08.06.2016 23:00

veltony,
1) Гойвертс Я., Левитан С. Регулярные выражения. Сборник рецептов (2009)
2) Фридл Дж. Регулярные выражения (3-е издание, 2008)
:victory:

nerv_ 08.06.2016 23:20

на первый взгляд так:

'string'.replace(/(8|7|\+7){0,1}[- \\\\(]{0,}([9][0-9]{2})[- \\\\)]{0,}(([0-9]{2}[- ]{0,}'.'[0-9]{2}[- ]{0,}[0-9]{3})|([0-9]{3}[- ]{0,}[0-9]{2}[- ]{0,}[0-9]{2})|([0-9]{3}[- ]{0,}''[0-9]{1}[- ]{0,}[0-9]{3})|([0-9]{2}[- ]{0,}[0-9]{3}[- ]{0,}[0-9]{2}))/, '')

Coriolan161 08.06.2016 23:32

nerv_,
g поставь. там текст, а не одна строка.

laimas 08.06.2016 23:34

'.' - ?

veltony 09.06.2016 13:03

Большое спасибо Nerv_ , всё работает.

laimas 09.06.2016 13:16

Цитата:

Сообщение от veltony
всё работает

Так ли? Точка в рег. выражениях, это спец. символ, и если '.' это кавычки и точка, то точка должна быть экранирована.

veltony 09.06.2016 18:49

Проверял разные варианты, но вроде всё работает как надо.
А как правильно должно быть? Вопрос по точке.

laimas 09.06.2016 19:22

Не будет работать так как надо, ибо ... в общем читайте о рег. выражениях, там все сказано. А "кавычка точка..." должно быть так \.

ruslan_mart 09.06.2016 19:57

Точка в JS и PHP по разному работает, в PHP она захватывает абсолютно все символы, а в JS - все в пределах одной строки.

Поэтому, лучше использовать:
[\s\S]


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