jQuery的字符串替换

问题描述:

需要帮助这一点,试图上传从IE9的图像,我得到一个C:fakepath/name_of_my_filejQuery的字符串替换

如何删除这个C:fakepath?

感谢

if($('#ficheiro').val().search(/C:fakepath/)) { 
       $('#ficheiro').val().val($('#ficheiro').val().replace('C:fakepath','')); 
       nome.val('pics/'+$('#ficheiro').val()); 
      } else { 
       nome.val('pics/'+$('#ficheiro').val()); 
      } 

不能只需使用字符串替换功能?

nome.val("pics/" + $('#ficheiro').val().replace("C:fakepath", "")); 
+0

没有工作,但这并 – Pluda 2011-05-03 19:04:52

+0

如果(ficheiro.search(/ C:fakepath /)){ \t ficheiro = ficheiro.replace('C:fakepath ”, ''); \t nome.val(dominio +'/ pics /'+ ficheiro); \t \t \t \t}否则{ \t \t \t \t \t nome.val(DOMINIO + '/图片/' + ficheiro); \t \t \t \t} – Pluda 2011-05-03 19:05:13

var path = new String($('#ficheiro')。val());
path = path.replace(“C:fakepath”,“”);

为你解决问题,先浏览IE浏览器,然后使用encodeURI编码所有的文件路径和名称,你必须先这样做才能正确捕获像“\”这样的unscaped字符。然后只是替换,它对我的​​工作:

var browserName=navigator.appName; 
if (browserName=="Microsoft Internet Explorer") 
{ 
    var soloNombre = encodeURI(soloNombre); 
    soloNombre = soloNombre.replace("C:%5Cfakepath%5C",""); 
    var soloNombre = decodeURI(soloNombre); 
    alert(soloNombre); 
} 

工程就像一个魅力。

+0

虽然我们感谢您在堆栈溢出方面所做的努力,但您可以谨慎使用复制和粘贴样板答案,因为这些答案往往会被标记为“垃圾邮件”。尝试并根据OP的具体问题和代码示例定制您的答案。谢谢。 – Kev 2011-05-30 22:28:51

你可以使用它,它也将删除斜杠,只留下文件名。

$(this).val().replace(/C:\\fakepath\\/i, ''); 

试试这个

$(function() { 
    $("input:file").change(function(){ 
     var fileName = $(this).val().replace("C:\\fakepath\\", ""); 
    }); 
    });