分割后如何在网址内插入一个字符串? 我有一个像这样的简单代码,但我只是不明白分割和连接是如何工作的 我尝试过“追加”功能,但我无法做到 我测试并写入 http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_split
<html>
<body>
<script type="text/javascript">
var str="/image/picture.jpg";
var test = str.split("/");
for(var i = 0; i < test.length; i++) {
document.write(test[1].join('/original') + "<br />");
}
document.write(test);
</script>
</body>
我想要的输出就像这样:
“/图像/原始/ picture.jpg”
注意:感谢您的帮助。
答案 0 :(得分:6)
只需使用替换:
str.replace('image/', 'image/original/');
如果你真的想因某种原因将它转换为数组:
var ary = str.split('/');
ary.splice(2, 0, 'original');
ary.join('/');
答案 1 :(得分:1)
vikenoshi,
您希望使用Array.splice
方法将新元素插入到使用String.split
创建的结果数组中。这里记录了splice
方法:
http://www.w3schools.com/jsref/jsref_splice.asp
这是应该做你想做的代码:
function spliceTest() {
var url = "/image/picture.jpg";
// split out all elements of the path.
var splitResult = url.split("/");
// Add "original" at index 2.
splitResult.splice(2, 0, "original");
// Create the final URL by joining all of the elements of the array
// into a string.
var finalUrl = splitResult.join("/");
alert(finalUrl); // alerts "/image/original/picture.jpg"
};
我用一个工作示例创建了一个JsFiddle: http://jsfiddle.net/S2Axt/3/
关于我正在使用的其他方法的说明:
join
:Join从数组中创建一个新字符串。通过将数组的所有元素转换为字符串,并将它们附加或连接在一起来构造此字符串。您可以选择提供分隔符。在这里,我使用/
来分割路径的各个部分。split
:Split将基于另一个字符串的字符串拆分为数组。答案 2 :(得分:0)
你也可以这样做:
var wholeURL = "/image/picture.jpg";
var choppedUpURL = wholeURL.split("/");
var finalURL = "/" + choppedUpURL[1] + "/original/" + choppedUpURL[2];
alert(finalURL);
答案 3 :(得分:0)
快速而简单
var str="/image/picture.jpg";
var elems = str.split("/");
elems.splice(elems.length-1, 0, "original")
document.write(elems.join("/");
注意我正在使用带有数组长度的第一个参数的splice方法 - 1.这将字符串“original”放在最终路径的倒数第二个位置,而不管你传递的URL多长时间如果这不是所需的行为,您可以将代码更改为elems.splice(2, 0, "original")
。无论URL多长,这都会将字符串“original”放在路径的第二个位置。
答案 4 :(得分:0)
您的代码的部分问题是您在字符串而不是数组上调用join
,请参阅https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/join。
split
的返回类型是一个数组,https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split。这样做
var test = str.split("/");
表示test是一个数组。那么test[1]
是该数组的字符串,并且在其上调用join
将不起作用。
答案 5 :(得分:0)
尝试:
var str="/image/picture.jpg";
var test = str.split("/");
test[3]=test[2];
test[2]='original';
document.write(test.join('/'));