Разбор строки
Всем доброго времени суток. Не судите строго, в js совсем новичёк...
У меня задачка следующая. Мне надо менять имя файла в input type = "File" т.е предположим есть строка в инпуте: c:\DSP\рабочие инструкции\Планы.txt Мне надо заменить слово находящиеся между \ и . на какое то своё. Я нашёл функцию замены rez = str_replace(inStr,replStr, string); inStr - это значение в строке от \ до . (т.е. слово Планы) Вопрос - как мне из моей строки получить необходимый текст от \ до . ? |
ты не сможешь подставить в инпут(файл) другое значение, так как это нарушение политики безопасности.
|
т.е. я не могу это функционально сделать в JS вообще?
дело в том что у меня есть 5 полей input одинакового типа File. каждое из них заполняет пользователь, но обязательно есть статические имена вкладываемых файлов для каждого поля, т.к. пользователь может файл назвать по другому... поэтому и надо принудительно менять имена файлов перед отправкой страницы на сервер |
Цитата:
|
в общем неважно)
Это сложно правильно сформулировать... в принципе если не вдаваться в подробности я просто спросил как получить значение из строки находящееся между знаками / и . |
GRol, на каком языке-то? В первом сообщении был PHP.
|
GRol,
Цитата:
|
Не имеет значения что именно хочет сделать автор, важно что он спросил. Вот у него допустим в поле input "name='file' type='file' onchange='some_func(this.value);'", пользователь выбрал файл:
"c:\DSP\рабочие инструкции\Планы.txt" И вопрос заключался в том, как регуляркой на ЯваСкрипте получить в переменную браузера слово, находящиеся между "\" и ".", т.е., в его примере это - "Планы", а в теме вместо этого почему-то переползли на безопасность инпутов,.. Задачи то разные бывают, мне, например, нужно выгрызть имя файла для проверки именно имени и именно на стороне клиента на возможные левые символы + инфу про всю нелатинницу, что бы пользователь ещё до отправки файла на сервер сразу знал, что часть неправильных, с моей точки зрения, символов в имени его файла, при сохранении ко мне на сервер, будут вырезаны и точно потеряются. |
anasana,во первых незачем поднимать тему 3-хмесячной давности.
во вторых, если вы еще не все буквы алфавита выучили, то я вам глубоко сочуствую, ибо автор просил именно Цитата:
|
Сорри не глянул на дату... меня уже на каком-то форуме за подобное назвали гостём-некрофилом :), но тогда я вообще такое вытянул...
От темы JS я тоже далёк и буквы для меня - тоже проблема :( см. ниже, поэтому тот код, который за сегодня мне удалось собрать в кучу очень неопрятный: function symbols(symb) { var lastdot, name, ext, i, j, ss, ts, sb, bb, sterr = '', als = '._ !@#$%^&()+=[],~-'; // + latin letters only symb = symb.substring(symb.lastIndexOf('\\')+1, symb.length); lastdot = symb.lastIndexOf('.'); if (lastdot==-1) { lastdot = symb.length; } name = symb.substr(0, lastdot); ext = symb.substring(name.length, symb.length); ext = ext.toLowerCase(); symb = name+ext; if (ext!='.zip' && ext!='.rar' && ext!='.sit' && ext!='.png') { alert('Bad extention:'+ext+' (.zip, .rar, .sit or .png only)'); return false; } for (i=0; i<=symb.length-1; i++) { ss = 0; ts = 0; sb = 0; bb = 0; for (j=0; j<=als.length-1; j++) { if (symb.charAt(i) == als.charAt(j)) { ss++; } } if (symb.charAt(i)>=0 && symb.charAt(i)<=9) { ts++; } if (symb.charAt(i)>='a' && symb.charAt(i)<='z') { sb++; } if (symb.charAt(i)>='A' && symb.charAt(i)<='Z') { bb++; } if (ss+ts+sb+bb == 0) { sterr += symb.charAt(i); } } if (sterr !='') { alert('Filename with latin letters only? Ok? Ошибки в следующих знаках ' + sterr); } return false; } В первом посте главным я посчитал: > Вопрос - как мне из моей строки получить необходимый текст от \ до . ? То, что просил автор у меня в переменной symb. |
Часовой пояс GMT +3, время: 22:40. |