如何将 "split" 逗号转换为冒号

How to switch a "split" comma to colons

我想我在这里遗漏了一些简单的东西。我正在尝试拆分 URL,然后将逗号切换为冒号。有没有简单的方法可以做到这一点。

<div id="splitit"></div>

<script>
    var mySplitResult = window.location.href.split('/');
    document.getElementById('splitit').textContent = mySplitResult;
</script>

所以 "mySplitResult" 的结果是值,值,值,值,值 我想要 value:value:value:value

我想你正在寻找替换

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace

var myReplaceResult = window.location.href.replace(/\//g, ':');
var mySplitResult=window.location.href.split('/').join(':')

我就是这样做的。

<script>
    var mySplitResult = window.location.href.split('/');
    document.getElementById('splitit').textContent = mySplitResult.replace(',' , ':');
</script>

非常简单,它会将任何 , 替换为 :

mySplitResult实际上包含一个字符串数组。

window.location.href.split('/');
["http:", "", "whosebug.com", "questions", "30086262", "how-to-switch-a-split-comma-to-colons"]

然后 Array.prototype.toString 将其转换为逗号分隔的字符串。

改为使用Array.prototype.join

document.getElementById('splitit').textContent = window.location.href.split('/').join(':');

"mySplitResult" 被设置为逗号分隔字符串的原因是由于某些原型方法的性质与 Array 类型无关。从 ECMA5 开始,如果一个对象包含一个 join() 方法,它将被调用,否则将调用 toString() 方法(参见 Array.prototype.toString

对于 Array 类型,有一个 join() 方法使用逗号作为默认分隔符。这解释了为什么您会看到 "value,value,value",因为在将 textContent 分配给 mySplitResult 期间正在调用 join()。

要获得所需的结果,您可以更改代码以显式调用 join() 方法并传入所需的分隔符:

var mySplitResult = window.location.href.split('/');
document.getElementById('splitit').textContent = mySplitResult.join(':');