Javascript用空格替换所有“%20”

时间:2013-12-26 23:23:18

标签: javascript

有没有办法用JavaScript替换每个“%20”空格。我知道如何用空格替换单个“%20”但是如何替换所有这些?

var str = "Passwords%20do%20not%20match";   
var replaced = str.replace("%20", " "); // "Passwords do%20not%20match"

7 个答案:

答案 0 :(得分:88)

检查一下: How to replace all occurrences of a string in JavaScript?

简短回答:

str.replace(/%20/g, " ");

编辑: 在这种情况下,您还可以执行以下操作:

decodeURI(str)

答案 1 :(得分:48)

百分比%后跟两个十六进制数字(UTF-8字符表示)通常表示已编码为 URI 。这确保了否则具有特殊含义的字符不会干扰。在你的情况下,%20可以立即识别为空白字符 - 而真正 URI 中有任何意义,它被编码以避免将字符串分解为多个“部分”。

别误会我的意思,regex is the bomb!但是,任何值得关注的网络技术都已经在其库中提供了工具,可以为您处理standards这样的问题。为什么重新发明轮子......?

var str = 'xPasswords%20do%20not%20match';
console.log( decodeURI(str) ); // "xPasswords do not match"

Javascript同时decodeURIdecodeURIComponentencodeURIencodeURIComponent对应点略有不同 - 您应该熟悉这些文档。

答案 2 :(得分:11)

在regexp中使用global标志:

var replaced = str.replace(/%20/g, " ");
                                ^

答案 3 :(得分:1)

使用unescape(stringValue)

var str = "Passwords%20do%20not%20match%21";
document.write(unescape(str))

//Output
Passwords do not match!

decodeURI(stringValue)仅适用于space(“”)其他字符无法正常工作

Space = %20
? = %3F
! = %21
# = %23
...etc

答案 4 :(得分:0)

如果要使用jQuery,可以使用.replaceAll()

答案 5 :(得分:0)

如果您需要在结尾处删除空格,则可以采用以下解决方案: https://www.geeksforgeeks.org/urlify-given-string-replace-spaces/

const stringQ1 = (string)=>{
  //remove white space at the end 
  const arrString = string.split("")
  for(let i = arrString.length -1 ; i>=0 ; i--){
    let char = arrString[i];
    
    if(char.indexOf(" ") >=0){
     arrString.splice(i,1)
    }else{
      break;
    }
  }

  let start =0;
  let end = arrString.length -1;
  

  //add %20
  while(start < end){
    if(arrString[start].indexOf(' ') >=0){
      arrString[start] ="%20"
      
    }
    
    start++;
  }
  
  return arrString.join('');
}

console.log(stringQ1("Mr John Smith   "))

答案 6 :(得分:0)

这个方法使用了 decodeURI() 方法,这是最好的方法。

var str = "Passwords%20do%20not%20match%21";
alert(decodeURI(str))

这是它的工作原理:

Space = %20
? = %3F
! = %21
# = %23
...etc

在 mozzila 文档中有一个很好的例子 [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURI]