如何使用javascript替换字符串中的单词?
我有一根绳子如何使用javascript替换字符串中的单词?,javascript,Javascript,我有一根绳子 mystr = 'public\uploads\file-1490095922739.jpg'; 我想换一个 公共\上传 使用“”,这样我只想提取文件名 文件编号:149009922739.jpg 或者说 \上载\file-149009922739.jpg 我如何做到这一点,在js中是否有任何方法可以做到这一点,或者我们可以通过replace方法做到这一点 我正在执行以下步骤 var imagepath1; var imagepath = 'public\uploads\file
mystr = 'public\uploads\file-1490095922739.jpg';
我想换一个
公共\上传
使用“”,这样我只想提取文件名
文件编号:149009922739.jpg
或者说
\上载\file-149009922739.jpg
我如何做到这一点,在js中是否有任何方法可以做到这一点,或者我们可以通过replace方法做到这一点
我正在执行以下步骤
var imagepath1;
var imagepath = 'public\uploads\file-1490095922739.jpg';
unwantedChar = 'public|uploads';
regExp = new RegExp(unwantedChar , 'gi');
imagepath = imagepath.replace(regExp , '');
imagepath1 = imagepath;
$scope.model.imagepath = imagepath1.replace(/\\/g, "");
请向我推荐优化方法。也许我不理解这个问题,但这不管用吗
var mystr = 'public\uploads\file-1490095922739.jpg';
var filename = mystr.replace('public\uploads', '');
那就做吧:
var imagepath = 'public\\uploads\\file-1490095922739.jpg';
$scope.model.imagepath = imagepath.replace('public\\uploads\\', '');
而不是使用一堆不必要的变量
这样您就可以获得文件路径,删除public\uploads\
,然后将文件路径设置为$scope.model.imagepath
请注意,仅当图像文件路径始终匹配'public\uploads\*FILENAME*'
时,此操作才有效
var input = "public\\uploads\\file-1490095922739.jpg";
var result = input.replace("public\\uploads\\", "");
这就是您要找的,不需要花哨的正则表达式:)。可以找到有关替换的详细信息。如果要获取最后一个反斜杠字符后的字符串部分,可以使用以下方法:
var filename = mystr.substr(mystr.lastIndexOf('\\') + 1);
还要注意,您需要转义测试字符串中的反斜杠字符:
var mystr = 'public\\uploads\\file-1490095922739.jpg';
搜索最后一个正斜杠,并用字符串的长度对字符串(+1,因为不需要斜杠)进行切片以获得文件名。这样,您就不必担心路径是否始终存在。您要查找的部分是否始终位于最后一个``字符之后?不,我想删除“public\uploads”一词,以便保留文件名“file.jpg”。这不是同一回事吗?换句话说,
public\uploads
后面除了一个用反斜杠分隔的文件名之外,还能跟其他任何东西吗?是的,没错!!!!!那么,如果输入是\uploads\file-1490095922739.jpg
,该怎么办呢?我尝试了同样的方法,但它抛出了以下错误:无效的Unicode转义序列啊,是的,正如@Dax指出的那样-您需要转义斜杠。:-)是的,这很好,需要转义斜杠:-)未捕获的语法错误:无效的Unicode转义序列,,,,,,,,,上述逻辑工作正常
var url = '/anysource/anypath/myfilename.gif';
var filename = url.slice(url.lastIndexOf('/')+1,url.length);