Python:如何将字符串转换为 url 安全字符串?



例如,我该如何转动这个:

This is a string!

进入这个:

this-is-a-string

我希望转换排除所有特殊字符,只接受字母和数字,并用-替换空格

从技术上讲,要将字符串编码为 URL 安全值,您只需通过 urllib 的解析器运行它:

import urllib.parse
print(urllib.parse.quote(value))

但是,您要求自定义转换。 您可以使用一些内置的字符串和正则表达式库来执行此操作:

import re
print(re.sub("[^a-z0-9-]", "", value.lower().replace(" ", "-")))

如果要允许超过a-z0-9-为"有效",则需要扩展正则表达式。

您可以使用 encodeURIComponent 在 ES5 Lib 中。

/**
* Encodes a text string as a valid component of a Uniform Resource Identifier (URI).
* @param uriComponent A value representing an unencoded URI component.
*/
declare function encodeURIComponent(uriComponent: string | number | boolean): string;

例子:

// Encodes characters such as ?,=,/,&,:
console.log(`?x=${encodeURIComponent('test?')}`);
// Expected output: "?x=test%3F"
console.log(`?x=${encodeURIComponent('шеллы')}`);
// Expected output: "?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"

最新更新