JavaScript拆分并添加一个字符串

时间:2011-06-19 03:45:46

标签: javascript

分割后如何在网址内插入一个字符串? 我有一个像这样的简单代码,但我只是不明白分割和连接是如何工作的 我尝试过“追加”功能,但我无法做到 我测试并写入 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”

注意:感谢您的帮助。

6 个答案:

答案 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);

http://jsfiddle.net/jasongennaro/KLZUT/

答案 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('/'));