![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| KuZyagroup |
|
|||
![]() magento solution ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 16.4.2007 Где: Kiev Репутация: 1 Всего: 4 |
Есть строка #smth(smthelse*=smthelseone)
Хочу порезать в массив split ф-цией, трабла в том что я не понимаю как задать два символа, а любой из smth может быть * Для ясности (что б не прибегать к телепатии дам примеры)
|
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
вот так? Правда потом придется пустые строки повыкидывать... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| KuZyagroup |
|
|||
![]() magento solution ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 16.4.2007 Где: Kiev Репутация: 1 Всего: 4 |
спасибо, а я забыл что * - символ перед которым нужен бэк-слэш.
П.С. Вот список всех таких символов если кому нибудь понадобится.
|
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Если мои предположения по поводу предназначения этих строк верны, то тогда имели бы смысл следующие действия.
Создать шаблон, на соответствие которому будет проверяться строка (ведь нет смысла разбивать строку, не зная ее значения, а потом еще пытаться использовать непредсказуемый результат, да еще, как отмечено, выкидывать пустые строки). Затем вызвать метод match на строке для проверки совпадения с шаблоном, тем самым убивая сразу двух зайцев:
|
|||
|
||||
| KuZyagroup |
|
||||
![]() magento solution ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 16.4.2007 Где: Kiev Репутация: 1 Всего: 4 |
AKS, я не до конца понял что вы имели в ввиду по этому сформулирую задачу которую я себе поставил.
Строка содержит три атрибута
Связаных #,(,*=|==|ect,) Например
|
||||
|
|||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
А что непонятного? Вы пишите: Просто переведите это на язык регулярных выражений, не забыв заключить символы, описывающие три интересующих фрагмента строки, в захватывающие скобки. Затем используйте метод match (String.prototype.match) или exec (RegExp.prototype.exec). |
|||
|
||||
| KuZyagroup |
|
|||
![]() magento solution ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 16.4.2007 Где: Kiev Репутация: 1 Всего: 4 |
Если я не ошибаюсь то в match-е описывают содержимое выборки. То есть что брать, а в сплит-е чем разделено то что брать
Почему по Вашему match будет рациональней чем split P.S. Что до пустых строк которые даёт split, то я точно знаю что это будет 0-вая и 4-тая,- по этому не считаю их наличие минусом. |
|||
|
||||
| AKS |
|
||||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Вам нужен результат (т.е. три строки - name, attr, value) или что-то еще?
Результат выполнения кода из примера ksnk в IE видели? Это сообщение отредактировал(а) AKS - 27.2.2008, 07:34 |
||||
|
|||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Гыы! забавно... Не думал, что split настолько различается. Действительно, match будет поприличнее
Правда магии здесь немного больше Хотя можно,конечно, для кроссбраузерности в первом варианте добавить какой-нибудь мусор сначала и с конца строки, но это немного не спортивно -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| KuZyagroup |
|
|||
![]() magento solution ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 16.4.2007 Где: Kiev Репутация: 1 Всего: 4 |
AKS,
ksnk, ага понял, теперь осталось полностью вкурить /#(.*?)\((.*?)\*?=?=(.*?)\)/ |
|||
|
||||
| AKS |
|
||||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Так ведь она (магия) того стоит. Взять хотя бы упомянутый margin-left=15px. Если задать неверное значение, например '*15px', обращаясь к объекту style, то IE выдаст ошибку:
А если к написанию регвыра подойти чуть серьезней, то подобного можно избежать.
Вы этому (в смысле добавки мусора) у John Resig’а научились, увлекшись jQuery? ;) Это сообщение отредактировал(а) AKS - 27.2.2008, 09:07 |
||||
|
|||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Все в рамках заявленной спецификации
Нее! Это я и сам умею ;-) -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| AKS |
|
|||
|
Участник форума ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 20.9.2006 Репутация: 27 Всего: 52 |
Да я ведь не имел ввиду ваш регвыр. Просто хотел написать, что можно установить очень жесткие условия (во избежание, т.с.). Но теперь уж замечу, что ваш регвыр "пропустит" уже упомянутые *15px, а наверно не стоит... Я тоже умею, если что. ;) |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
Замечу, что "упомянутые" вами, а не автором -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |