Как определить что в строке только цифры и латинские буквы? #343733


#0 by HelpFinder
Нужно реализовать функцию, которая бы отсеивала определяла есть ли в строчке символы отличные от латинских букв и цифр? Как бы сделать это
#1 by Fragster
ну, например на javascript через регэксп
#2 by Terv
а в чем проблема?
#3 by ДенисЧ
для каждого символа строки сравнить его на вхождение в интервал от КОдСимв("0") до КодСимв("Z") Только я не помню с ходу, Сначала цифры, потом буквы или наоборот. А так множество латинских букв в таблице кодировки плотное
#5 by Ёпрст
нет ничего проще : ЗЫ: Можешь проверять и посимвольно.
#6 by Fragster
а непечатные символы в диапазоне до 127 символа не учтены!
#7 by HelpFinder
оригинально )) спасибо всем
#8 by Ёпрст
Непечатные символы уже английскими стали?
#9 by Ёпрст
+8 Или, к примеру, © - какой символ?
#10 by regniws
сам всегда пользую , но как-то пошло это.. не находите!?
#11 by Fragster
, ну, главное, что ты меня правильно понял. копилевты, евры, фунты, кавычки и прочая шняга - оем2анси нифига не поменяет - ибо кода - <= 127 :)
#12 by Господин ПЖ
слабо до 400 дотянуть?
#13 by Fragster
#14 by regniws
а смысл остался тот же, тем более еще и медленнее. а если у нас, допустим, словарь произвольный?
#15 by Fragster
ой, кавычки забыл :)
#16 by Fragster
ни фига не медленнее - нету цикла с 26+26+10 итерациями
#17 by Fragster
и что значит - словарь производный? регэксп - очень мощная штука, рекомендую. а вообще там не replace, а match надо использовать, но лень в мануалы лезть...
#18 by HelpFinder
Кстати как раз я на самом деле под WEB пишу на АСП и 1С77. поэтому такие вопросы и пошли )
#19 by regniws
сложность получается на обычном О(ДлинаСловаря*ДлинаСтроки) Понятное дело, что реплейс из СкриптКонтроля работает таким же перебором, просто низкоуровневым, но на все эти ком-взаимодействия - время много уходит. На 1с, просто рассмотреть чисто алгоритмческую задачу.
#20 by regniws
словарь произвольный(!), например: словарь hex символов "01234567890xabcdefXABCDEF"
#21 by Fragster
просто, регэкспом, например, можно проверить валидность формата емэйла или урла намного более читабельно, чем то же самое на 1с делать. Просто я уверен, что задача далеко не целиком состоит в определении наличия/остутствия каких-то букв - а тут уж регэкспы рулят
#22 by regniws
я не спорю, проверка валидности строки установленному шаблону - регэксп. Но это из пушки по воробьям в данном случае :) и все же !? :) Идеи? собственно, сам обдумываю хэширование сейчас.
#23 by Fragster
опять же проверять по строке 0[х,Х][0-9,A-F,a-f] (или что-то типа того) легче, чем проверять, является ли первые символы 0x, или 0Х а потом остальную часть...
#24 by regniws
хм.. собственно придумал :)))))) не экономный к памяти, но зато мы решаем все за один проход. общая схема, кому знакомы плюсы, поймут: кому не понятно, дам каменты. задача решена за время o(длинаМассива)
#25 by Лефмихалыч
ну, да, ни кто ж не сказал ни чо про 1С
#26 by Fragster
на 1се можно то же написать
#27 by Лефмихалыч
А вообще, эта тема рискует стать конкурентом
#28 by Fragster
правла через список значений :)
#29 by Fragster
ну так пятница-то ненастоящая!
#30 by regniws
(25,26) ну да, я просто быстро накидал, на 1с будет почти тоже самое, просто код объемней чутку, а смысл тот же. :))) теперь со спокойной душой можно утвердить, что тема закрыта!? :)
#31 by regniws
если 8ка, то там есть объект Массив, так что и без списков обойдемся :)
#32 by Ёпрст
В семёрке, как ни странно тоже есть массив .
#33 by regniws
ууууууупц :))))))) "как это было давно.... " Просто переклино, что в 8ке он отдельным объектом выделен.
#34 by Fragster
тут смысл не в том, есть массив, или нет, а в том, что индексами этого массива является наш алфавит - в 1с этого нету, в 8 есть соответствие, а из 7.7 подойдет список значений как раз...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С