删除输出上的%20

时间:2013-02-21 14:28:53

标签: javascript html-encode

我使用来自aweber的代码,将用户信息从注册传递到下一页, 这是来自aweber的代码

<script type="text/javascript"> 
    var formData = function(){
        var query_string = (location.search)?((location.search.indexOf('#') != -1) ? location.search.substring(1, location.search.indexOf('#')) : location.search.substring(1)) : '';
        var elements = [];
        if(query_string){
            var pairs = query_string.split("&");
            for(i in pairs) { 
                if (typeof pairs[i] == 'string') {
                    var tmp = pairs[i].split("="); 
                    var queryKey = unescape(tmp[0]);
                    queryKey = (queryKey.charAt(0) == 'c') ? queryKey.replace(/\s/g, "_") : queryKey;elements[queryKey] = unescape(tmp[1]);
                }
            }
        }
        return{display: function(key){if(elements[key]){document.write(elements[key]);
    }else {
        document.write("<!--If desired, replace everything between these quotes with a default in case there is no data in the query string.-->");
    }}}}();
</script>

然后这是显示名称

的页面上的代码

<script type="text/javascript">formData.display("fullname")</script>

示例输出为FirstName%20LastName

是否有办法删除%20

3 个答案:

答案 0 :(得分:4)

%20是url编码中的空白符号。由于某种原因,您的函数返回url编码的数据。尝试使用url解码输出,你的%20应该表示为空格。

您可以使用decodeURI(http://www.w3schools.com/jsref/jsref_decodeuri.asp

编辑:

这是一个工作的小提琴手。

var result = 'Firstname%20Lastname';
var result = decodeURI(result);

document.getElementById('demo').innerHTML = result;

http://jsfiddle.net/p82HN/

答案 1 :(得分:0)

该数据是网址编码的,因此请使用decodeURIdecodeURIComponent对其进行解码:

var result = decodeURI(input);

答案 2 :(得分:0)

看起来您需要对数据进行urldecode,请查看decodeURIComponent()