Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: для новичков > Замена косай черты |
Автор: omka 6.11.2008, 16:55 |
Подскажите: Есть строка такого вида "C:\temp\dir\". Как сделать что бы косая черта распознавались как косая чёрта а не как спецсимвол? Нужно чем-то заменить черту? Как это сделать? PS: Эта строка, после некоторых манипуляций, вставляется в текстфилд и должна иметь вид: "C:\temp\dir\" |
Автор: Zeroglif 6.11.2008, 17:23 | ||
|
Автор: omka 6.11.2008, 18:03 |
Наверное не точно объяснил в чём проблема. 1 Строка может быть любой. 2 после получения этой строки она складыватся с другой строкой. (в момент сложения строка уже без слешей). 3 результирующая строка вставляется в текстфилд Пример: 1-я строка "C:\temp\dir\" 2-я строка "folder" Когда складываю строки имею C:tempdir\ + folder. (слеши потерялись) Надо их как то replace() только не знаю как) |
Автор: destrd 6.11.2008, 18:37 | ||
Ну как-то так можно сделать
|
Автор: bars80080 6.11.2008, 18:45 |
наверное данные проходят определённуб обработку, прежде чем попадают под твои действия, и наверное эта обработка - засунуть в БД и ты уже достаёшь их оттуда. так? |
Автор: ksnk 6.11.2008, 19:57 | ||
bars80080,
Угу... Вероятно, они складываются вот так вот "$variable1$variable2" ![]() |
Автор: omka 10.11.2008, 12:37 | ||||
Ну как-то так можно сделать
Не помогает((( FireBug показывает:
Походу что-то другое надо... Суть программы вот в чём: сканирую файловую систему сервера, при выборе нужной папки - путь к ней вставляется в поле на другой странице... Вот этот путь формируется их того что приходит с сервера ("C:\dsts\dfdf\g\") + имя текущей папки ("folder"). Если просто склеивать строки - не получается, тк путь приобретает такой вид: "C:dstsdfdfgfolder.... PS: на сервере изменение пути не подходит - надо именно на клиенте. |
Автор: bars80080 10.11.2008, 17:48 |
может на сервере провести необходимую обработку и поставлять клиенту нормальный путь? |
Автор: omka 10.11.2008, 17:57 | ||
А на клиенте это сделать возможно? |
Автор: bars80080 10.11.2008, 21:29 |
фишка в том, что C:dstsdfdfgfolder - это не нормальный путь, его посечили видимо при выемке из базы. тогда надо разбираться с ней. если вырубка происходит при передаче клиенту, то надо просто превратить \ в спецсимвол, либо экранировать. самое простое провести url-кодирование но в любом случае, надо прежде всего разобраться, на каком конкретно этапе происходит инквизиция. может они уже у тебя в базе хранятся в обрезанном состоянии. тогда задача вообще взята не с того конца |
Автор: destrd 10.11.2008, 21:36 | ||
Ну понятное дело. При объявлении слеши уже надо экранировать. т.е.
Тогда на выходе и получится по два слеша. Определись, когда у тебя слеши пропадают. |
Автор: omka 12.11.2008, 10:43 |
Путь выводится на клиентской странице. Выводится правильно. Т.е. с сервера приходит "C:\folder\dir". Но при обработке этой строки в скрипте получается что именно там слеш распознаётся как спецсимвол и неучитывается. |
Автор: ksnk 12.11.2008, 11:29 |
omka,
![]() |
Автор: omka 12.11.2008, 15:01 | ||
Ну вот к примеру код
При выводе даёт такой результат: "C:dir". Вывод: распознал \t как спецсимвол и не вывел в alert. Т.е. замену на клиенте произвести проблемматично....? |
Автор: bars80080 12.11.2008, 15:08 | ||
а куда этот слэш c:\ делся? |
Автор: omka 12.11.2008, 15:18 |
Исчез. Очевидно потому что \d никакой символики не несёт, в отличии от \t. Поэтому он просто подставил символ d... |
Автор: ksnk 12.11.2008, 16:57 | ||||
omka, я вас как художник художника спрашиваю, с синтаксисом JavaScript знакомы? ![]() Чтобы пример с Алерт выдавал то, что от него, по всей видимости, требуется нужно написать
Чтобы из PHP породить разумно выполняющуюся конструкцию нужно сделать примерно так
|
Автор: omka 12.11.2008, 17:16 |
ksnk, Как художник художнику отвечаю - знаком. Сайт написан на java. Прекрасно понимаю что таким выводом я получу то что вижу. Я просто веду к тому что: как мне заменить обратный слешь на клиенте. Мне интересно в строке, которая приходит с сервера на клиент в таком виде "C:\dsd\t\tr, можно ли как нибудь выщемить эти слеши. ![]() С JS работал не особо много поэтому многого не знаю. В принципе поэтому и написал.... Может я чего то недопонял.... Если нельзя - буду сереверную сторону ковырять, но это потянет за собой много всего нехорошего) уже пробовал) |
Автор: ksnk 12.11.2008, 18:03 | ||
Вот это правильно. Можно, конечно, javascript'ом заменять символы \a\b... \z на \\a \\b ... \\z, но это путь, imho, ущербен. Можно нарваться на какие-нибудь особенные спецсимволы, с которыми регулярки и заменялки откажутся работать... Причем для разных броузеров эта фича может работть по своему... |