fre*_*ent 1 javascript split join splice
我想在文件名中添加一个哈希字符串,所以我尝试重命名该字符串。
这就是我所拥有的:
var x = "puh.jpg";
var y = x.split(".");
y.splice(1,0,"foo");
var z = y.join(".");
console.log(z)
Run Code Online (Sandbox Code Playgroud)
哪个正确返回:puh.foo.jpg.
问题:
这可以在一行中完成并且无需声明辅助变量吗?
谢谢!
您可以使用正则表达式轻松完成此操作(以您需要使用的名称的复杂性为模):
var y = x.replace(/^([^.]*)\.(.*)$/, '$1.foo.$2');
Run Code Online (Sandbox Code Playgroud)
在正则表达式中,我用来( )创建组(其中 2 个)。第一组匹配名称中除句点之外的所有字符,直到将.名称与文件扩展名分开。(如果扩展名可能根本不存在,那么看起来就像是^([^.]*)\.?(.*)$使“.”可选。)第二组获取名称的其余部分(扩展名)。
在替换字符串中,结构“$1”和“$2”被扩展为原始字符串中与这两个组匹配的部分。