|  11.05.2014, 16:01 | #1 | 
| Программатор | Ax12. Проверка строки на русские буквы. 
			
			Коллеги, всех с праздниками!   Подскажите, есть какая то стандартная функция для проверки строки на содержание букав только русского языка (можно любого)? Заранее спасибо!   | 
|  | 
|  11.05.2014, 19:11 | #2 | 
| Участник | 
			
			и вас тоже с праздниками. Я в таких случаях использую strkeep передавая ей в качестве параметра все символы русского алфавита. Если вернулась непустая строка то значит есть. | 
|  | 
|  11.05.2014, 19:27 | #3 | 
| Участник | 
			
			Про стандартную не слышал. А я использую обычно char2num и проверяю на диапазон от А до я | 
|  | 
|  11.05.2014, 19:56 | #4 | 
| Участник | 
			
			В 12 есть замечательная функция match(str pattern, str text) Указываете диапазон русских букв , указываете строку, в которой надо произвести проверку и вам вернёт , есть ли русские буквы аль нет http://msdn.microsoft.com/en-us/library/aa886279.aspx | 
|  | 
|  12.05.2014, 11:30 | #5 | 
| Программатор | Цитата: 
		
			Сообщение от user_ax
			   Указываете диапазон русских букв http://msdn.microsoft.com/en-us/library/aa886279.aspx   | 
|  | 
|  12.05.2014, 11:50 | #6 | 
| Участник | 
			
			Если что пиши.  X++: str allowStr = "^[а-яэъыёА-ЯЭЪЫЁ]+$"; ; if (!match(allowStr, _value)) ret = checkFailed(strfmt("Поле '%1' содержит запрещающие знаки.", _errorMsg)); | 
|  | |
| За это сообщение автора поблагодарили: Ruff (2), Мартынов Дмитрий (1), Sada (1), raniel (1). | |
|  12.05.2014, 11:54 | #7 | 
| Участник | |
|  | 
|  12.05.2014, 16:22 | #8 | 
| Программатор | 
			
			Может меня не правильно поняли, но мне нужна проверка строки, на то, что она состоит только из русских букв. То есть, если там есть хоть одна английская, то ругаться
		 | 
|  | 
|  12.05.2014, 16:24 | #9 | 
| Программатор | Цитата: X++: str allowStr = "^[а-яэъыёА-ЯЭЪЫЁ]+$"; ; if (!match(allowStr, "мама")) checkFailed(strfmt("Поле '%1' содержит запрещающие знаки.", "жажажа")); X++: str allowStr = "^[а-яэъыёА-ЯЭЪЫЁ]+$"; ; if (!match(allowStr, "mother")) checkFailed(strfmt("Поле '%1' содержит запрещающие знаки.", "жажажа")); ЗЫ: вы как к этому "^[а-яэъыёА-ЯЭЪЫЁ]+$" пришли   | 
|  | 
|  12.05.2014, 16:25 | #10 | 
| NavAx | X++: if (strlen(strkeep(_str, 'АБ....я')) != strlen(_str)) | 
|  | |
| За это сообщение автора поблагодарили: Sada (3). | |
|  12.05.2014, 16:25 | #11 | 
| Программатор | |
|  | 
|  12.05.2014, 16:26 | #12 | 
| Участник | Цитата: функция match выдадет вам 1 , если в проверяемой строке есть хотя бы один элемент из шаблона. То есть, вам нужно: X++: str _val; int res; _val = 'Тут какой-то русский текст with some english words'; res = match("[а-я]",_val); if (res == 0) ret = checkFailed("Only english Letters"); | 
|  | |
| За это сообщение автора поблагодарили: Sada (3). | |
|  12.05.2014, 16:28 | #13 | 
| Участник | Цитата:   | 
|  | 
|  12.05.2014, 16:33 | #14 | 
| Программатор | 
			
			Строка "АБВ" должна пройти проверку, а вот "АБВZ" пройти не должно, так как Z - это не русская буква
		 | 
|  | 
|  12.05.2014, 16:35 | #15 | 
| Участник | Цитата: Только и условие тогда будет, поиск английских букв в строке. Если нашли хоть одну - match вернёт 1. Конечно, если нужно проверить наличие всех без исключения символов, кроме русского алфавита (не только английские буквы) - лучше использовать другой путь. PHP код: 
			Последний раз редактировалось Krash; 12.05.2014 в 16:48. | 
|  | 
|  12.05.2014, 16:37 | #16 | 
| Программатор | |
|  | 
|  12.05.2014, 17:31 | #17 | 
| Участник | 
			
			я предоставил рабочий код. в нашей системе он реализован для проверки кода клиента на соответсвие только русским символам. Все просто регулярные выражение. http://subcoder.ru/%D1%80%D0%B5%D0%B...%D0%B0-%D1%8F/ Правда у меня исходня строка разрешает еще цифры. X++: allowStr    = "^[а-яэъыёА-ЯЭЪЫЁ0-9]+$";В Вашем случае прекрастно работает с X++: allowStr    = '^[а-яА-ЯёЁ]+$';Последний раз редактировалось axotnik88; 12.05.2014 в 17:46. Причина: дополнение | 
|  | 
|  12.05.2014, 17:42 | #18 | 
| Программатор | Цитата: 
		
			Сообщение от axotnik88
			   я предоставил рабочий код. в нашей системе он реализован для проверки кода клиента на соответсвие только русским символам. Все просто регулярные выражение. http://subcoder.ru/%D1%80%D0%B5%D0%B...%D0%B0-%D1%8F/ Правда у меня исходня строка разрешает еще цифры. X++: allowStr    = "^[а-яэъыёА-ЯЭЪЫЁ0-9]+$"; Спасибо! | 
|  | 
|  12.05.2014, 18:09 | #19 | 
| Ищущий знания... | Цитата:   
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  |