我还没有handlebars.js的,但是从我的角度来看任何经验,你可以把代码只是</body>
前:
<script>
var node = document.getElementById('pre-region');
node.innerHTML = node.innerHTML.replace(',', '+');
</script>
我如果它不起作用,请检查把手js。
更新: 当您在评论中提到,如果你需要在HTTP请求/ URL中使用它,你可以使用decodeURIComponent(yourstring)
处理字符串:
decodeURIComponent('1%2B44'); // you get '1+44'
从了解更多关于decodeURIComponent()
方法this。在URL中,在你的情况下它应该被编码为region=1%2B44
;而如果你想在你的JavaScript代码中使用它或者在网页中显示,它应该被解码。
更新1
当它作为HTTP请求参数的一部分,就应该编码您的字符串。因此,它看起来很不错,如果网址是:
MYDOMAIN /路/ getRegion令牌&简档= 111 &的dataType =所有&地区= 1%2B4
你需要做的是解码服务器端的字符串。我假设你在控制服务器端。如果您使用Node.js,则可以使用decodeURIComponent()
方法来解码参数。如果您使用Python或PHP作为您的服务器语言,则应该使用该语言的decodeURIComponent()
。
更新2
以上仅更换逗号的第一场合+
溶液。为了解决这个问题,只需使用:
<script>
var node = document.getElementById('pre-region');
node.innerHTML = node.innerHTML.replace(/,/g, '+');
// Regular Expression is used here, 'g' for global search.
</script>
PHP有replaceAll()
方法,所以我们可以说的方法添加到String.prototype
像下面,如果你想:
<script>
String.prototype.replaceAll = function(search, replacement) {
var target = this;
return target.split(search).join(replacement);
}
// Another method to replace all occasions using `split` and `join`.
</script>
我试过你的方法,它把它改成+,但传递给API时改变特殊字符 – anson920520
成了类似地区= 1%2B4 – anson920520
@ anson920520莫非你请给我看更多的代码? – iplus26