RegExp Как заэкранировать все метасимволы в строке
02.03.2011
11:05
#1
Здравствуйте. Проблема такая: Осуществляется проверка вводимого телефона на соответствие в базе. Поскольку многие телефоны записываются с кодом (863)67.....и т.д. при поиске из-за скобобк они не выдаются, подскажите пожалуйста , как заэкранировать всю строку на вхождение метасимволов.
02.03.2011
14:40
#5
"RegExp = Новый COMОбъект("VBScript.RegExp");
RegExp.IgnoreCase = Истина;
RegExp.Global = Ложь;
RegExp.MultiLine = Ложь;
RegExp.Pattern = ПроверяемыйТелефон;
Запрос=Новый Запрос("ВЫБРАТЬ
| Информация.РабТелефон,
| Информация.Клиент
|ИЗ
| РегистрСведений.Информация КАК Информация");
Выборка=Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Совпадения=RegExp.Execute(Выборка.РабТелефон);
ЧислоВхождений=Совпадения.Count();
Если ЧислоВхождений>0 Тогда
Для к = 0 По ЧислоВхождений-1 Цикл
Match = Совпадения.Item(к);
Сообщить("Найдено совпадение по рабочему телефону клиента: "+Выборка.Клиент+" тел.: "+Выборка.РабТелефон);
КонецЦикла;
КонецЕсли
КонецЦикла;"
RegExp.IgnoreCase = Истина;
RegExp.Global = Ложь;
RegExp.MultiLine = Ложь;
RegExp.Pattern = ПроверяемыйТелефон;
Запрос=Новый Запрос("ВЫБРАТЬ
| Информация.РабТелефон,
| Информация.Клиент
|ИЗ
| РегистрСведений.Информация КАК Информация");
Выборка=Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Совпадения=RegExp.Execute(Выборка.РабТелефон);
ЧислоВхождений=Совпадения.Count();
Если ЧислоВхождений>0 Тогда
Для к = 0 По ЧислоВхождений-1 Цикл
Match = Совпадения.Item(к);
Сообщить("Найдено совпадение по рабочему телефону клиента: "+Выборка.Клиент+" тел.: "+Выборка.РабТелефон);
КонецЦикла;
КонецЕсли
КонецЦикла;"
Читают тему
(гостей: 1)