Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Замена косай черты 
:(
    Опции темы
omka
Дата 6.11.2008, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 22.11.2007

Репутация: нет
Всего: нет



Подскажите:
Есть строка такого вида "C:\temp\dir\". Как сделать что бы косая черта распознавались как косая чёрта а не как спецсимвол? Нужно чем-то заменить черту? Как это сделать?
PS: Эта строка, после некоторых манипуляций, вставляется в текстфилд и должна иметь вид: "C:\temp\dir\"

Это сообщение отредактировал(а) omka - 6.11.2008, 16:58
PM MAIL   Вверх
Zeroglif
Дата 6.11.2008, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 1
Всего: 66



Код

alert('C:\\temp\\dir\\');

PM MAIL WWW   Вверх
omka
Дата 6.11.2008, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 22.11.2007

Репутация: нет
Всего: нет



Наверное не точно объяснил в чём проблема.
1 Строка может быть любой.
2 после получения этой строки она складыватся с другой строкой. (в момент сложения строка уже без слешей).
3 результирующая строка вставляется в текстфилд

Пример:
1-я строка "C:\temp\dir\"
2-я строка "folder"

Когда складываю строки имею C:tempdir\ + folder. (слеши потерялись)

Надо их как то replace() только не знаю как)
PM MAIL   Вверх
destrd
Дата 6.11.2008, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 1.10.2008

Репутация: нет
Всего: 4



Ну как-то так можно сделать
Код

str = str.replace(/\\/g, "\\\\");

--------------------
Some people, when confronted with a problem, think, "I known, I'll use regular expressions." Now they have two problems.        -- Jamie Zawinski in comp.lang.emacs
PM MAIL ICQ   Вверх
bars80080
Дата 6.11.2008, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



наверное данные проходят определённуб обработку, прежде чем попадают под твои действия, и наверное эта обработка - засунуть в БД и ты уже достаёшь их оттуда. так?
PM MAIL WWW   Вверх
ksnk
Дата 6.11.2008, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



bars80080
Цитата

наверное данные проходят определённуб обработку

Угу... Вероятно, они складываются вот так вот "$variable1$variable2" smile


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
omka
Дата 10.11.2008, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 22.11.2007

Репутация: нет
Всего: нет



Ну как-то так можно сделать
Код

str = str.replace(/\\/g, "\\\\");


Не помогает((( FireBug показывает:
Код

illegal character
[Break on this error] var currentFolder = "C:\dsts\dfdf\g\".replace(/\\/g, "\\\\");;\n


Походу что-то другое надо...
Суть программы вот в чём: сканирую файловую систему сервера, при выборе нужной папки - путь к ней вставляется в поле на другой странице... Вот этот путь формируется их того что приходит с сервера ("C:\dsts\dfdf\g\") + имя текущей папки ("folder").
Если просто склеивать строки - не получается, тк путь приобретает такой вид: "C:dstsdfdfgfolder....

PS: на сервере изменение пути не подходит - надо именно на клиенте.
PM MAIL   Вверх
bars80080
Дата 10.11.2008, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



может на сервере провести необходимую обработку и поставлять клиенту нормальный путь?
PM MAIL WWW   Вверх
omka
Дата 10.11.2008, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 22.11.2007

Репутация: нет
Всего: нет



Цитата(bars80080 @ 10.11.2008,  17:48)
может на сервере провести необходимую обработку и поставлять клиенту нормальный путь?

А на клиенте это сделать возможно?
PM MAIL   Вверх
bars80080
Дата 10.11.2008, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



фишка в том, что C:dstsdfdfgfolder - это не нормальный путь, его посечили видимо при выемке из базы. тогда надо разбираться с ней.
если вырубка происходит при передаче клиенту, то надо просто превратить \ в спецсимвол, либо экранировать. самое простое провести url-кодирование

но в любом случае, надо прежде всего разобраться, на каком конкретно этапе происходит инквизиция. может они уже у тебя в базе хранятся в обрезанном состоянии. тогда задача вообще взята не с того конца
PM MAIL WWW   Вверх
destrd
Дата 10.11.2008, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 1.10.2008

Репутация: нет
Всего: 4



Цитата(omka @  10.11.2008,  12:37 Найти цитируемый пост)
Не помогает((( FireBug показывает:

Ну понятное дело. При объявлении слеши уже надо экранировать. т.е.
Код

var currentFolder = "C:\\dsts\\dfdf\\g\\".replace(/\\/g, "\\\\");

Тогда на выходе и получится по два слеша. Определись, когда у тебя слеши пропадают.
--------------------
Some people, when confronted with a problem, think, "I known, I'll use regular expressions." Now they have two problems.        -- Jamie Zawinski in comp.lang.emacs
PM MAIL ICQ   Вверх
omka
Дата 12.11.2008, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 22.11.2007

Репутация: нет
Всего: нет



Путь выводится на клиентской странице. Выводится правильно. Т.е. с сервера приходит "C:\folder\dir".
Но при обработке этой строки в скрипте получается что именно там слеш распознаётся как спецсимвол и неучитывается.
PM MAIL   Вверх
ksnk
Дата 12.11.2008, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



omka
  • Как (кусок кода) выводится эта пременная в окно броузера?
  • Как (кусок кода) используется эта переменная, чтобы такой странный эффект получился?
Вероятно, слеши менять стоит не в JavaScript'е а в Php smile


Это сообщение отредактировал(а) ksnk - 12.11.2008, 11:32


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
omka
Дата 12.11.2008, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 22.11.2007

Репутация: нет
Всего: нет



Ну вот к примеру код 
Код

alert("C:\dir\t".replace(/\\/, "\\\\"));


При выводе даёт такой результат: "C:dir".

Вывод: распознал \t как спецсимвол и не вывел в alert. Т.е. замену на клиенте произвести проблемматично....?
PM MAIL   Вверх
bars80080
Дата 12.11.2008, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Цитата(omka @  12.11.2008,  14:01 Найти цитируемый пост)
При выводе даёт такой результат: "C:dir".

Вывод: распознал \t как спецсимвол 

а куда этот слэш c:\ делся?
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0756 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.