• Node.js Video Tutorials

Node.js - querystring.unescape() 方法



Node.js 的querystring模块提供用于解析和格式化URL查询字符串的实用程序。Node.js 的querystring.unescape()方法对提供的字符串中的URL百分比编码字符进行解码,并返回一个普通字符串。此方法会移除提供的字符串中的%符号,并返回一个普通字符串。

Node.js querystring.unescape()方法由querystring.parse()方法使用,不会直接使用。默认情况下,querystring.unescape()方法尝试使用JavaScript内置的decodeURIComponent()方法进行解码。

语法

以下是Node.js querystring.unescape()方法的语法:

querystring.unescape(str)

参数

此方法接受四个参数。这些参数描述如下。

  • str − 此参数将保存一个URL百分比编码字符,这些字符将被解码为普通字符串。

返回值

此方法将解码给定的URL百分比编码字符,并返回一个普通字符串。

示例

如果我们将URL百分比编码字符传递给Node.js querystring.unescape()方法,它将返回一个普通字符串,不包括URL百分比编码字符。

在下面的示例中,我们使用Node.js querystring.unescape()方法编码一个URL百分比编码字符串。

const querystring = require('node:querystring');

var result = "Articles%20Node.js%20Tutorialspoin";
console.log(querystring.escape(result));

var unescaped = result;
console.log(querystring.unescape(unescaped));

输出

internal/modules/cjs/loader.js:596
   throw err;
   ^
   
Error: Cannot find module 'node:querystring'at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15)
   at Function.Module._load (internal/modules/cjs/loader.js:520:25)
   at Module.require (internal/modules/cjs/loader.js:650:17)
   at require (internal/modules/cjs/helpers.js:20:18)
   at Object.<anonymous> (/home/cg/root/63a03fcfc3513/main.js:1:83)
   at Module._compile (internal/modules/cjs/loader.js:702:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
   at Module.load (internal/modules/cjs/loader.js:612:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
   at Function.Module._load (internal/modules/cjs/loader.js:543:3)

注意 − 要查看实际结果,请在本地执行上述代码。

从下面的输出中可以看到,Node.js querystring.unescape()方法返回了一个普通字符串。

Articles Node.js Tutorialspoint

示例

如果我们将URL百分比编码字符的字符串传递给Node.js decodeURIComponent()方法,则该方法将返回一个不包含URL百分比编码字符的普通字符串。

下面的示例演示了Node.js decodeURIComponent()方法的使用。

const querystring = require('node:querystring');
let string = "Articles%20Nodejs%20Tutorialspoint";
let result = decodeURIComponent(string);
console.log(result)

输出

internal/modules/cjs/loader.js:596
   throw err;
   ^
   
Error: Cannot find module 'node:querystring'
   at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15)
   at Function.Module._load (internal/modules/cjs/loader.js:520:25)
   at Module.require (internal/modules/cjs/loader.js:650:17)
   at require (internal/modules/cjs/helpers.js:20:18)
   at Object.<anonymous> (/home/cg/root/63a03fcfc3513/main.js:1:83)
   at Module._compile (internal/modules/cjs/loader.js:702:30)at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
   at Module.load (internal/modules/cjs/loader.js:612:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
   at Function.Module._load (internal/modules/cjs/loader.js:543:3)

注意 − 如果我们在本地编译并运行上述程序,Node.js decodeURIComponent()方法将返回一个普通字符串。

Articles Nodejs Tutorialspoint

示例

如果将包含URL百分比编码字符的字符串同时传递给Node.js querystring.unescape()方法和Node.js decodeURIComponent()方法,它们将返回相同的普通字符串。

在下面的示例中,我们尝试使用Node.js querystring.unescape()Node.js decodeURIComponent()方法解码URL百分比编码字符。

const querystring = require('node:querystring');  
let string = "Articles%20Nodejs%20Tutorialspoint";
let unescaped = querystring.unescape(string)
let decodedURI = decodeURIComponent(string);

console.log("The result of querystring() method: " + unescaped);
console.log("The result of decodeURIComponent() method: " + decodedURI)

if (unescaped === decodedURI){
   console.log("Both the results are same.");
}
else{
   console.log("Both the results are not same");
}

输出

internal/modules/cjs/loader.js:596
   throw err;
   ^
   
Error: Cannot find module 'node:querystring'
   at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15)
   at Function.Module._load (internal/modules/cjs/loader.js:520:25)
   at Module.require (internal/modules/cjs/loader.js:650:17)
   at require (internal/modules/cjs/helpers.js:20:18)
   at Object.<anonymous> (/home/cg/root/63a03fcfc3513/main.js:1:83)
   at Module._compile (internal/modules/cjs/loader.js:702:30)
   at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
   at Module.load (internal/modules/cjs/loader.js:612:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:551:12)at Function.Module._load (internal/modules/cjs/loader.js:543:3)

注意 − 要查看实际结果,请在本地执行上述代码。

执行上述程序后,这两种方法都返回相同的字符串。

The result of querystring() method: Articles Nodejs Tutorialspoint
the result of decodeURIComponent() method: Articles Nodejs Tutorialspoint
Both the results are same.
nodejs_querystring_module.htm
广告
© . All rights reserved.